首页 新闻 搜索 专区 学院

ado.net entity多表联合时的复合主键问题

0
悬赏园豆:100 [已解决问题] 解决于 2012-04-19 18:37

 

ado.net entity多表联合时一个表有多个主键(如:表二Book有两个主键ID BookName);

关联如下:

生成就报错如下问题:

各位帮助一下!

问题补充:

如果将“BookName”的主键属性去掉就可以通过,但这个表必须要两个主键才能确定唯一。

数据库里的数据就要求这个表必须要两个主键!!!

并且数据库是客户库,表的结构是定死了的,不能更改.两个表是一对多的关系,我想通过界面绑定这两个表的联合,并同时更新,怎么做到?最好能说说具体的实现方法,不盛谢谢!

 

其实视图是一个比较好的办法,但把视图绑定到界面gridform时不让修改,人为的改成让修改后,savechanges()时出错,说有一个DefiningQuery属性,

 

用事务的话,得写很多代码,并且不同的表还得不同的代码,我想看看有没有简单的方法,

我试过了,两个表都只有一个主键时,就可以自动更新,不需要自己写代码.

 

Book表报错,报错信息上面发的有,它有主键,我认为原因是User表是一个主键,而Book表是两个主键,不知道怎么解决!

题外话:我怎么点直接回复后不能输入?

 

都有主键,并且edmx文件里的主键设计和数据库里的一样,

py_study的主页 py_study | 初学一级 | 园豆:8
提问于:2012-04-11 11:08
< >
分享
最佳答案
1

这个表必须要两个主键才能确定唯一?,为什么要二个主键才能确定唯一呀,一个不可以吗?

收获园豆:90
wlz0815 | 小虾三级 |园豆:587 | 2012-04-11 11:20

要不这样,你在Book表里多加一个字段userID,别用主键去关连,用UserID去关连User表的ID。

wlz0815 | 园豆:587 (小虾三级) | 2012-04-12 09:24

@wlz0815: 以前我处理多表的时候,比较复杂时就用视图呀,我感觉你表结构设计好合理,但你说它又是设死的。如果同时更新多个表,可以写多个语句,写上事务,全部更新好了,再提交。

wlz0815 | 园豆:587 (小虾三级) | 2012-04-16 16:37

@wlz0815: 哪那个表报错,是不是那个表没有主键,如果没有就加上去,如果有,就把edmx文件重新更新一遍试试。

wlz0815 | 园豆:587 (小虾三级) | 2012-04-16 21:05

@wlz0815: 这样的问题能解决吗?

py_study | 园豆:8 (初学一级) | 2012-04-19 18:33
其他回答(2)
0

关注下,学习下。

收获园豆:2
rains | 园豆:860 (小虾三级) | 2012-04-11 11:50
0

有一个主键就行吧,另外一个你也可以在添加数据时用程序去作验证啊,不让它重复不就可以了,这样不就避免了一些其它的错误了嘛

收获园豆:8
KivenRo | 园豆:1722 (小虾三级) | 2012-04-11 16:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册