具有 EF 4 c# 的外键
本文关键字:EF 具有 | 更新日期: 2023-09-27 18:36:51
我在EF 4.0中遇到外键问题。
我和一个玩家玩了一个小游戏。该玩家可以在游戏中拥有一些角色。
因此,当我想向数据库添加字符时,必须设置外键"PlayerId"。
这是我的代码,但是在上下文模型中添加对象时会杀死:
using (DatabaseModelContainer model = new DatabaseModelContainer())
{
Character c = new Character();
c.Player.Id = idPlayer;
model.CharacterJeu.AddObject(c);
model.SaveChanges();
}
谢谢你的回答。
这里的奇怪事情
Character c = new Character();
c.Player.Id = idPlayer;//But instance c has no Player (well, I don't know the constructor of Character, but I may imagine there's no new Player() inside)
顺便说一下,使用您似乎拥有的模型,您不必像现在这样管理 FK。您必须管理引用(导航)属性。
你可以这样做。
Character c = new Character{
Player = model.GetPlayerByid(idPlayer);//or something like that
}
实体框架有一个名为Atta的方法,它可能就是你要找的。我认为它可用于更新现有对象上的外部实体。
MSDN:附加和分离对象