Я пытаюсь установить простое отношение «один ко многим», в котором список может содержать ноль или более задач, а задача должна иметь связанный список. Я хочу убедиться в этом с помощью модульного теста, но не могу понять, как должна быть связана ассоциация, чтобы тест не прошел (позже я буду использовать ExpectedExceptionAttribute, но я даже не знаю, какое исключение будет выброшено пока).
Задание может быть успешно отправлено, но я бы хотел, чтобы Linq пожаловался на отсутствующую ссылку в списке:
[TestMethod]
public void SavingTaskWithoutListFails()
{
var task = new Task() { Title = "Test Task", Description = "This is the task description." };
Db.Tasks.InsertOnSubmit(task);
Db.SubmitChanges();
}
Мои классы и ассоциации выглядят так:
[Table]
public class Task
{
[Column(AutoSync = AutoSync.OnInsert, DbType = "Int NOT NULL IDENTITY", IsDbGenerated = true)]
public int TaskId { get; set; }
[Column(IsPrimaryKey = true)]
public string Title { get; set; }
[Column]
public string Description { get; set; }
[Column]
public int ListId { get; set; }
private EntityRef<List> _list;
[Association(Storage = "_list", ThisKey = "ListId")]
public List List
{
get { return _list.Entity; }
set { _list.Entity = value; }
}
}
и это:
[Table]
public class List
{
[Column(AutoSync = AutoSync.OnInsert, DbType = "Int NOT NULL IDENTITY", IsDbGenerated = true)]
public int ListId { get; set; }
[Column(IsPrimaryKey = true)]
public string Title { get; set; }
private EntitySet<Task> _tasks;
[Association(Storage = "_tasks", OtherKey = "TaskId")]
public EntitySet<Task> Tasks
{
get { return _tasks; }
set
{
if (_tasks == null)
{
_tasks = new EntitySet<Task>();
}
_tasks.Assign(value);
}
}
}
Может ли кто-нибудь помочь с правильной ассоциацией или подсказкой, как добиться желаемого поведения?