Я следующий объект данных:Code First - Entity Framework - Как выставить внешние ключи
public class Customer : System.Data.Entity.ModelConfiguration.EntityTypeConfiguration<Customer>
{
public Customer()
{
// this.HasRequired(a => a.EyeColorType).WithMany().HasForeignKey(a => a.EyeColorTypeID);
}
[Key]
public int ID { get; set; }
[Required]
[MaxLength(100)]
public string FirstName { get; set; }
[Required]
[MaxLength(100)]
public string LastName { get; set; }
[Required]
[ForeignKey("EyeColorTypeID")]
public EyeColorType EyeColorType { get; set; }
// public int EyeColorTypeID { get; set; }
}
}
То, что я пытаюсь сделать, это выставить поле EyeColorTypeID
на сгенерированной собственности клиента , а также указать имя в БД.
Если я удалю оба комментария, он работает, но я хотел бы использовать аннотацию данных для этого. Что-то вроде [ExposeForeignKey("EyeColorTypeID")]
и все это произойдет автоматически.
Возможно ли это? Как я могу это сделать?
Вам нужно добавить 'public Int32 EyeColorTypeID' (или любой другой тип данных, который ваш ключ). –
Спасибо, я хотел включить это. Я добавил его к вопросу выше. В принципе, мне все еще нужно, чтобы прокомментированная строка вверху отображалась на самом деле, поэтому я могу сказать myContext.Customers.First(). EyeColorTypeID = 1; В противном случае это даст мне только myContext.Customers.First(). EyeColorType = someEyeColorTypeInstance; Обязательная часть в порядке, я просто хочу, чтобы поле внешнего идентификатора было открыто. – James
Возможно, вы можете использовать PostSharp для этого. –