C# 在EF5中使用Attach更新相关实体时,如何更新相关实体?
我有一个在数据库中有N个PlayerAliases(1-N)的表播放器 当我编辑球员信息时,我想更新一些球员表字段和球员名单字段 我不会在PlayerAlias中添加/删除字段,只是更新。我如何在EF中做到这一点 下面的代码,来自ViewModel和Save函数示例。玩家模型应类似于ViewModel示例C# 在EF5中使用Attach更新相关实体时,如何更新相关实体?,c#,entity-framework,C#,Entity Framework,我有一个在数据库中有N个PlayerAliases(1-N)的表播放器 当我编辑球员信息时,我想更新一些球员表字段和球员名单字段 我不会在PlayerAlias中添加/删除字段,只是更新。我如何在EF中做到这一点 下面的代码,来自ViewModel和Save函数示例。玩家模型应类似于ViewModel示例 public class PlayerViewModel { public int PlayerID {get;set;} public string Name {get;se
public class PlayerViewModel
{
public int PlayerID {get;set;}
public string Name {get;set;}
public string Address {get;set;}
public IEnumerable<Alias> ListAliases {get;set;}
}
public bool UpdatePlayer(PlayerViewModel vm){
var e = new Players { PlayerID = vm.PlayerID };
db.Players.Attach(e);
e.Name = vm.Name;
e.Address = vm.Address;
if (vm.ListAliases != null)
{
// ??????????????
// How to update ListAliases ??
}
return db.SaveChanges() > 0;
}
public类playervewmodel
{
public int PlayerID{get;set;}
公共字符串名称{get;set;}
公共字符串地址{get;set;}
公共IEnumerable列表别名{get;set;}
}
公共布尔更新层(PlayerViewModelVM){
var e=新玩家{PlayerID=vm.PlayerID};
db.Players.Attach(e);
e、 Name=vm.Name;
e、 地址=虚拟机地址;
if(vm.listAlias!=null)
{
// ??????????????
//如何更新列表别名??
}
返回db.SaveChanges()>0;
}
我找到了方法。直接附加到相关表
if (vm.ListAliases != null)
{
foreach (var item in vm.ListAliases )
{
var eAlias = new PlayerAliases() { CodPlayerAlias = item.CodPlayerAlias };
db.PlayerAliases.Attach(eAlias);
eAlias.Column1 = item.Column1;
eAlias.Column2 = item.Column2;
}
}
你能发布你的EF模型类和/或数据库结构吗?我认为没有必要,因为我要求的是通用解决方案,我找到了一个适合我的解决方案,但我也想知道其他解决方案。。