必须使用关系流畅API或数据注释显式配置此关联的主要结尾

时间:2013-06-02 19:34:07

标签: linq visual-studio linq-to-sql linq-to-entities

我有两个SQL表:


    class DiaryItem
    {
        private System.Guid Id;

        private string Name;
    }

    class DiaryActivityItem
    {
        private System.Guid Id;

        private int Minutes;
    }

DiaryActivityItem.Id是DiaryItem.Id的外键。

我现在收到此错误消息:

  

无法确定之间关联的主要结束   类型'MyProject.Models.DiaryActivityItem'和   'MyProject.Models.DiaryItem'。这个协会的主要目的   必须使用关系fluent API显式配置   或数据注释。

现在,我发现我必须在[ForeignKey("Id")]之前编写DiaryActivityItem.Id来解决此问题,但我的问题是我的类是自动生成的。我有这个模型DataClasses.dbml l;当双击它时,我得到一个可视化模型设计器,我所做的每一个更改(随后保存)都会导致整个文件被重写,因此手动添加这个ForeignKey Annotation不起作用。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您必须按以下方式更改代码:

public  class DiaryItem
{
    public System.Guid DiaryItemId;

    public string Name;

    [ForeignKey("DiaryActivityItem")] 
    public System.Guid DiaryActivityItemId;

    public DiaryActivityItem DiaryActivityItem;
}

public  class DiaryActivityItem
{
    public System.Guid DiaryActivityItemId;

    public int Minutes;
}