2013-06-04 28 views
0

我有一個抽象類,繼承了3個POCO對象:傳遞泛型類物業ColumnAttribute在代碼中第一次遷徙

public abstract class BaseObject 
{ 
    public virtual int Id { get; set; } 
} 

public class Post : BaseObject 
{ 
    public string Name { get; set; } 

    public virtual ICollection<PostCategory> PostCategory { get; set; } 
} 

public class Category : BaseObject 
{ 
    public string Name { get; set; } 

    public virtual ICollection<PostCategory> PostCategory { get; set; } 
} 

public class PostCategory 
{ 
    [Key] 
    [Column("Id", Order = 0)] 
    public int PostId { get; set; } 

    [Key] 
    [Column("Id", Order = 1)] 
    public int CategoryId { get; set; } 

    public string Value { get; set; } 

    public virtual Post Post { get; set; } 
    public virtual Category Category { get; set; } 
} 

但是,每當我做‘添加遷移’在包管理器控制檯,我得到錯誤:

Schema specified is not valid. Errors: (30,6) : error 0019: Each property name in a type must be unique. Property name 'Id' was already defined.

基本上抱怨ColumnAttribute具有相同的屬性名稱(Id場所在PostCategory對象)。

我需要屬性名稱是相同的創建泛型類用於泛型回購類。這就是爲什麼我在抽象類中擁有Id。但是,這給我錯誤的CF遷移部分。有沒有辦法解決這個問題?

謝謝!

回答

0

ColumnAttribute屬性設置在SQL服務器中生成的名稱。很明顯,列Id不能生成兩次。

只需刪除ColumnAttribute即可讓服務器安靜地生成PostCategory表。