Я целый день пытался заставить это работать. Я много узнал о Fluent API EF (например, это отличная статья), однако успеха не добился.
У меня есть три объекта:
Код: Выделить всё
public class Address
{
[Key]
public virtual int AddressId { get; set; }
public virtual string AddressString { get; set; }
}
public class User
{
[Key]
public virtual int UserId { get; set; }
public virtual ICollection Addresses { get; set; }
}
public class House
{
[Key]
public virtual int HouseId { get; set; }
public virtual Address Address { get; set; }
}
и попробовал все комбинации HasMany, HasOptional, WithOptional, WithOptionalDependent и WithOptionalPrincipial, которые я мог придумать как для пользователя, так и для дома в
Код: Выделить всё
protected override void OnModelCreating(DbModelBuilder modelBuilder)
Я просто не могу заставить это работать. Я думаю, должно быть ясно, чего я хочу. Пользователь может иметь более одного адреса (во-первых, я хочу принудительно указать хотя бы один, но теперь я был бы рад, если бы пользователь мог иметь необязательные адреса...), в то время как Дом имеет ровно один Адрес - и это необходимый. Было бы неплохо, если бы адрес дома удалялся каскадно.
Подробнее здесь:
https://stackoverflow.com/questions/132 ... code-first