繁体   English   中英

带有EF 4 c#的外键

[英]Foreign key with EF 4 c#

我在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
}

实体框架有一个称为Attach的方法,这可能是您要寻找的。 我认为它可以用于更新现有对象上的外国实体。

MSDN: 附加和分离对象

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM