2

我正在尝试在 LINQ to SQL 中对数据库进行建模。我有一张表 JournalPosts。每个实体都与 1 个或多个发件人或收件人相关联。我的表“JournalPosts”中有以下复合主键:

    [Column(IsPrimaryKey = true)]
    public int CaseYear { get; set; }

    [Column(IsPrimaryKey = true)]
    public int CaseSequenceNumber { get; set; }

    [Column(IsPrimaryKey = true)]
    public int DocumentNumber { get; set; }

我在 JournalPosts 中定义了这样的一对多关系:

    private EntitySet<SqlSenderRecipient> senderRecipients;

    [Association(OtherKey = "CaseYear, CaseSequenceNumber, DocumentNumber", Storage="senderRecipients")]
    private EntitySet<SqlSenderRecipient> SenderRecipients
    {
        get { return senderRecipients; }
        set 
        { 
            senderRecipients.Assign(value); 
        }
    }

在我的另一个表(SenderRecipients)中,我尝试定义如下字段:

    [Association(IsForeignKey=true)]
    public int CaseYear { get; set; }

    [Association(IsForeignKey=true)]
    public int CaseSequenceNumber { get; set; }

    [Association(IsForeignKey=true)]
    public int DocumentNumber { get; set; }

问题是,我得到一个“对象引用未设置为对象的实例”。尝试创建数据库时出错。但是,如果我在另一个表(SenderRecipients)中指定 Column 属性而不是 Association-attributes,它可以工作(但是这些列没有设置为数据库中的外键 - 这是我想要的)。

4

0 回答 0