ado.net entity多表联合时一个表有多个主键(如:表二Book有两个主键ID BookName);
关联如下:
生成就报错如下问题:
各位帮助一下!
如果将“BookName”的主键属性去掉就可以通过,但这个表必须要两个主键才能确定唯一。
数据库里的数据就要求这个表必须要两个主键!!!
并且数据库是客户库,表的结构是定死了的,不能更改.两个表是一对多的关系,我想通过界面绑定这两个表的联合,并同时更新,怎么做到?最好能说说具体的实现方法,不盛谢谢!
其实视图是一个比较好的办法,但把视图绑定到界面gridform时不让修改,人为的改成让修改后,savechanges()时出错,说有一个DefiningQuery属性,
用事务的话,得写很多代码,并且不同的表还得不同的代码,我想看看有没有简单的方法,
我试过了,两个表都只有一个主键时,就可以自动更新,不需要自己写代码.
Book表报错,报错信息上面发的有,它有主键,我认为原因是User表是一个主键,而Book表是两个主键,不知道怎么解决!
题外话:我怎么点直接回复后不能输入?
都有主键,并且edmx文件里的主键设计和数据库里的一样,
这个表必须要两个主键才能确定唯一?,为什么要二个主键才能确定唯一呀,一个不可以吗?
要不这样,你在Book表里多加一个字段userID,别用主键去关连,用UserID去关连User表的ID。
@wlz0815: 以前我处理多表的时候,比较复杂时就用视图呀,我感觉你表结构设计好合理,但你说它又是设死的。如果同时更新多个表,可以写多个语句,写上事务,全部更新好了,再提交。
@wlz0815: 哪那个表报错,是不是那个表没有主键,如果没有就加上去,如果有,就把edmx文件重新更新一遍试试。
@wlz0815: 这样的问题能解决吗?
关注下,学习下。
有一个主键就行吧,另外一个你也可以在添加数据时用程序去作验证啊,不让它重复不就可以了,这样不就避免了一些其它的错误了嘛