当我尝试保存对象时,实体框架会抛出异常。可能是因为多对一关系而且它不知道如何插入。
型号:
public class Photo
{
public Guid Id {get;set;}
public List<Tag> Tags {get;set;}
}
public class Tag
{
public Guid Id {get;set;}
public string TagText {get;set;}
}
如果我不尝试将两张或多张照片链接到同一标签,这样可以正常工作。
示例:
Photo photo1 = new Photo();
Photo photo2 = new Photo();
Tag tag = new Tag() { TagText = "#EntityFramework"};
photo1.Tags.Add(tag);
photo2.Tags.Add(tag);
_content.SaveChanges(); //Exception
任何人都知道如何使用代码正确设置它?
更新
例外: 附加信息:违反了多重约束。关系“X”的角色“X”具有多重性1或0..1。
更新
添加迁移生成的脚本
CreateTable(
"dbo.Tags",
c => new
{
Id = c.Guid(nullable: false, identity: true),
TagText = c.String(),
Photo_Id = c.Guid(),
})
.PrimaryKey(t => t.Id)
.ForeignKey("dbo.Photos", t => t.Photo_Id)
.Index(t => t.Photo_Id);
答案 0 :(得分:1)
还要在Tag
中为多对多人定义一个集合属性:
public class Tag
{
...
public ICollection<Photo> Photos { get; set; }
}