c# - EF 4.1 代码优先 : Each property name in a type must be unique error on Lookup Table association

标签 c# entity-framework entity-framework-4 entity-relationship

这是我第一次尝试创建自己的 EF 模型,我发现自己在尝试使用 Code First 创建查找表关联时遇到了困难,因此我可以访问:

myProduct.Category.AltCategoryID

据我所知,我已设置模型和映射是正确的,但继续得到 错误 0019:类型中的每个属性名称必须是唯一的。属性名称“CategoryID”已定义

以下模型在我的代码中表示:

[Table("Product", Schema="mySchema")]
public class Product {
    [Key, DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.None)]
    public int ProductID { get; set; }
    public int CategoryID { get; set; }
    public virtual Category Category { get; set; }
}

[Table("Category", Schema="mySchema")]
public class Category {
    [Key, DatabaseGenerated(System.ComponentModel.DataAnnotations.DatabaseGeneratedOption.None)]
    public int CategoryID { get; set; }
    public string Name { get; set; }
    public int AltCategoryID { get; set; }
}

我已经指定了关联:

modelBuilder.Entity<Product>()
                    .HasOptional(p => p.Category)
                    .WithRequired()
                    .Map(m => m.MapKey("CategoryID"));

我尝试了其他一些方法,包括添加 [ForeignKey] 注释,但这会导致包含对 ProductID 字段的引用的错误。

最佳答案

您正在寻找:

modelBuilder.Entity<Product>()
            // Product must have category (CategoryId is not nullable)
            .HasRequired(p => p.Category)     
            // Category can have many products  
            .WithMany()                       
            // Product exposes FK to category  
            .HasForeignKey(p => p.CategoryID);

关于c# - EF 4.1 代码优先 : Each property name in a type must be unique error on Lookup Table association,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6526182/

相关文章:

mysql - 使用 LEFT OUTER JOIN 组合 2 个 SELECT 查询

c# - 如何检查实体的创建日期是否已过 20 天?

c# - 如何将 HttpRequestMessage 转发到另一台服务器

c# - 检测 Windows 7 审核模式

sql - EF 迁移正在删除列并尝试将不存在的列重命名回 Id

entity-framework - EF4 - ChangeObjectState 在 RC 中不再可用

asp.net-mvc-3 - 访问 WebGrid 中的模型数据

c# - 为 EditorFor 订购 Entity Framework 子项

c# - 如何在控件 :DataGrid by binding with the value of a column in that row in UWP C#? 中绑定(bind)一行的颜色

c# - 如果调用继承的重载,会调用什么方法?