Составной внешний ключ в отношении один-много? - PullRequest
2 голосов
/ 13 июля 2009

Я пытаюсь смоделировать базу данных в 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; }

Проблема в том, что я получаю «Ссылка на объект не установлена ​​на экземпляр объекта». ошибка при попытке создать базу данных. Однако, если я укажу атрибут Column в другой таблице (SenderRecipients) вместо атрибутов Association, он будет работать (но тогда столбцы не будут заданы как внешние ключи в базе данных - это то, что я хочу).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...