我有以下模型类
每个项目在特定语言表中有4种语言
public class Item
{
[Key]
public int Id { get; set; }
public DateTime? ExpireDate { get; set; }
}
public class ItemLanguage
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
[ForeignKey("Language")]
public int LanguageId { get; set; }
[ForeignKey("Item")]
public int ItemId { get; set; }
public Language Language { get; set; }
public Item Item { get; set; }
}
每个项目库在特定语言表中有4种语言
public class ItemLibrary
{
[Key]
public int Id { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd MMM yyyy}")]
public DateTime? ExpireDate { get; set; }
}
public class ItemLibraryLanguage
{
[Key]
public int Id { get; set; }
[Required]
public string Name { get; set; }
[ForeignKey("Language")]
public int LanguageId { get; set; }
[ForeignKey("ItemLibrary")]
public int ItemLibraryId { get; set; }
public ItemLibrary ItemLibrary { get; set; }
public Language Language { get; set; }
}
现在我想将项目添加到ItemLibraryItems表中。 它需要在此表中保存ItemId和ItemLibraryId(不是languageId)。显示库的选定项目时,需要根据登录时选择的语言显示。
public class ItemLibraryItem
{
[Key]
public int Id { get; set; }
[ForeignKey("ItemLibrary")]
public int ItemLibraryId { get; set; }
[ForeignKey("Item")]
public int ItemId { get; set; }
public ItemLibrary ItemLibrary { get; set; }
public Item Item { get; set; }
}
但是当我尝试使用ItemLibraryItem作为模型类来创建Controller时,它会给出错误 实体类型'ItemLibraryItem'和'ItemLibraryLanguage'不能共享表'ItemLibraryLanguages',因为它们不在同一类型层次结构中,或者没有有效的一对一外键关系,它们之间具有匹配的主键。