这可能是一个重复的qn,但是我无法得到这个场景的正确答案。我有以下表结构:
public class File
{
public int FileId { get; set; } //PK
public int VersionID { get; set; }
public virtual ICollection<FileLocal> FileLLocalCollection { get; set; }
}
public class FileLocal
{
public int FileId { get; set; } //PK, FK
public int LangID { get; set; } //PK,FK
public string FileName { get; set; }
}我在这里没有包括第三个表(它基本上是LangID (PK) & LangCode ),我如何在fluent Api中指定这个映射,以便我可以加载每个文件对象的"FileLLocalCollection“?
发布于 2012-06-14 04:20:17
映射的第一部分可以这样完成:
modelBuilder.Entity<File>()
.HasMany(f => f.FileLocalCollection)
.WithRequired()
.HasForeignKey(fl => fl.FileId);
modelBuilder.Entity<FileLocal>()
.HasKey(fl => new {fl.FileId, fl.LangId});第二部分取决于Lang的定义方式。例如,如果您将导航属性从FileLocal添加到Lang,您可以这样映射它:
modelBuilder.Entity<FileLocal>()
.HasRequired(fl => fl.Lang)
.WithMany()
.HasForeignKey(fl => fl.LangId);https://stackoverflow.com/questions/11019448
复制相似问题