我有一个名为Family的表。在将新记录插入此表之前,我想搜索其父记录的ID,以便插入新记录的一部分。有什么方法可以做到这一点。
E.g。如果我的表看起来像
ID Name ParentID
1 mark -1
2 eden -1
3 abbot 2
用户输入“kyle abbot”,我想搜索abbot的ID为3并将新记录存储为“4 Kyle 3”,其中3表示父母的ID。
有没有办法使用Entity Framework做到这一点?
答案 0 :(得分:0)
您可以使用LINQ查询EF上下文并检查父项是否存在。我从你的问题中假设用户条目包含名字和姓氏。
var userEntry = "Kyle Abbot";
var namePair = userEntry.Split();
using (var ctx = new FamilyContext())
{
var parent = ctx.families.
FirstOrDefault(x => x.Name.Equals(namePair[1],
StringComparison.InvariantCultureIgnoreCase));
var parentId = parent?.Id ?? -1;
ctx.Add(new Family
{
Name = namePair[0],
ParentId = parentId
});
ctx.SaveChanges();
}
如果为主键的实体类属性添加属性,则不需要自己生成主键来执行插入操作,否则在创建新实体对象时需要另外生成主键插入。
[System.ComponentModel.DataAnnotations.Schema.DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]