我喜欢 EF Code First,但有时在 SQL 中定义表似乎更容易。
在这种情况下,我有两个模型,如下所示:
public class Book
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<BookRecommendation> BookRecommendations { get; set; }
// additional properties about the item
}
public class BookRecommendation
{
public int Id { get; set; }
// public int BookId { get; set; } // from attempts to use data annotations
public virtual Book Book { get; set; }
// public int BookRecommendedId { get; set; } // from attempts to use data annotations
public virtual Book BookRecommended { get; set; }
// additional properties about the relationship between the two items
}
不幸的是,我无法让它与数据注释或流式 API 一起正常工作。
在 Entity Framework 4.1 code first ,Entity Framework 4.1 InverseProperty Attribute 和 ForeignKey中存在多个指向同一个表的问题,以及其他类似的问题,但这些问题往往涉及两端的集合。
我的模型可能是错误的,因为很早就开始感到沮丧,我想如何在 SQL 中做到这一点:
Book
Id
Name
// other properties
Recommendation
Id
BookId
RecommendedBookId
// other properties
Book.Id : Recommendation.BookId
然后在和之间会有外键Book.Id : Recommendation.RecommendedBookId
。
我需要通过数据注释或流畅的 API 做什么才能使其正常工作,或者我应该如何修改我的模型?