2012-11-12 114 views
4

我試圖使用註釋將POCO類映射到我的數據庫表中。 我需要使用Table註釋來指定我的表的名稱,但我無法解析Table註釋。找不到實體框架4註釋

注意:我導入了System.Data.Entity命名空間,但它不起作用。

我必須導入哪個命名空間才能使用EF批註?

注1: 我的意思是:

[Table("my_table")] 
public class MyClass 
{ 
    // ... 
} 

注2:我的實體框架DLL是v4.0.30319

回答

1

我需要使用Table註釋

您需要導入System.Data.Linq圖書館,TableAttribute可以參考來自System.Data.Linq.Mapping命名空間。

+0

我解決了添加'System.ComponentModel.DataAnnotations'和'System.Data.Linq'引用和修改註釋爲'[Table(Name =「my_table」)]''。非常感謝你! – davioooh

+0

System.Data.Linq不是EF的一部分,因此不需要 –

12

你應該導入System.ComponentModel.DataAnnotations命名空間。

編輯爲.NET 4.5和EF 5.0:你應該使用System.ComponentModel.DataAnnotations.Schema.Table屬性

+2

我添加了對我的項目的引用,並添加了'使用System.ComponentModel.DataAnnotations'到我的類,但它仍然無效... – davioooh

+0

+1我還添加了'System.Data.Linq'引用,現在它作品。謝謝 – davioooh

+1

System.Data.Linq.Mapping和System.ComponentModel.DataAnnotations都有Table和Column屬性類,所以不清楚應該使用哪一個。它們是不同的類,除了一個名爲「Name」的參數外,其他都不是。 – Triynko

1
using System.ComponentModel; 

[DisplayName("My friendly table name")] 

足以使其與EF 5/6和.NET 4.5的工作,不需要System.ComponentModel.DataAnnotations命名空間也不將System.Data.Linq爲這些版本。

+0

以上答案滿足針對網絡框架的EF <4.0.For .net 4.5及更高版本的命名空間System.ComponentModel.DataAnnotations.Schema具有表屬性,它可以用於裝飾類作爲表屬性。 –