在下面的代码中,我不相信我正在更改外键,但我可能是错的。当我运行它,我得到异常:ForeignKeyReferenceAlreadyHasValueException当不尝试更改外键?
ForeignKeyReferenceAlreadyHasValueException
下面是代码:
UsersModule um = dc.UsersModules.Where(x => x.UserId == IdParam).FirstOrDefault();
int oldModuleId = um.ModuleId;
string oldModule = um.Module.ModuleName;
将引发错误就行了:
string oldModule = um.Module.ModuleName
我不知道为什么我得到这个错误,因为我只是试图存储值o f ModuleName
转换为字符串oldModule
,不改变um.Module.ModuleName
尝试查看清单文件.dbml后面的生成代码文件。假设您使用设计器来添加L2S类。试着看看是否有异常投入获得者。 – 2010-07-30 14:46:11
我看了看,它被扔进了geter。 – Xaisoft 2010-07-30 14:46:48
我输了。我试图重现这个没有运气。我制作了两张桌子,其中一张带有一个外键。说B - > A.然后我从B得到一个项目,并尝试通过B ojebct访问A对象并读取As name(非关键字)。像这样B b = dc.Bs.First();字符串s = b.A.Name;它的工作.. – 2010-07-30 15:01:37