1
我有以下的類/實體:實體框架重複列
public class Product : ISaleable
{
public void ProcessSale()
{
return;
}
[NotMapped]
private int id { get; set; }
[NotMapped]
private string productName { get; set; }
[NotMapped]
private decimal price { get; set; }
[NotMapped]
private TaxClass taxClass { get; set; }
[NotMapped]
private int quantity { get; set; }
[NotMapped]
private Member memberAssociation { get; set; }
public TaxClass TaxClass
{
get
{
return this.taxClass;
}
set
{
this.taxClass = value;
}
}
public int Quantity
{
get
{
return this.quantity;
}
set
{
this.quantity = value;
}
}
public string ProductName
{
get
{
return this.productName;
}
set
{
this.productName = value;
}
}
public decimal Price
{
get
{
return this.price;
}
set
{
this.price = value;
}
}
public Member MemberAssociation
{
get
{
return this.memberAssociation;
}
set
{
this.memberAssociation = value;
}
}
[Key]
public int ID
{
get
{
return this.id;
}
set
{
this.id = value;
}
}
}
正如你所看到的,這個類從ISaleable繼承和有型TaxClass的兩個元素。現在,當項目運行時,EF試圖爲此實體創建表時,我會得到以下例外:
每個表中的列名必須是唯一的。表'Product'中的列名稱'TaxClass_ID' 指定了多次。
我不知道爲什麼會發生這種情況,任何幫助表示讚賞。
這工作!我也必須重新命名'Public MemberAssocation'。謝謝! – gunwin 2012-01-14 19:07:41
沒問題!我應該指出,你首先得到錯誤的原因是關係(可能)尚未建立。因此EF不確定您的TaxClass與您的產品的關係。看看這裏的文章瞭解更多信息:http://elegantcode.com/2009/12/15/entity-framework-poco-ef4-a-simple-mapping/ – Nick 2012-01-14 19:22:30
我改變了列的名稱與財產(f => f.Id).HasColumnName(「MyNewID」); 不確定這是否適用於您。這個設置被稱爲Fluent API btw。 – jonas 2013-02-19 12:43:17