none
EF 4.1 修改数据出错 RRS feed

  • 问题

  • 我想使用这种方式修改数据,但是报错。我想有什么方式能解决?

    请看图:

    ->或者有什么方法能传来一个泛型对象。能够直接根据此对象获得它的主键值然后自动返回与此对象相同主键值的对象。而不是手动使用Find() 这个方法。

    • 已编辑 Rainrcn 2012年4月18日 5:01
    2012年4月18日 4:28

答案

  • 您好,因为您给两个实体赋了相同的主键,所以会报这个错误。不太清楚您的意思,您是想要传入一个对象,根据这个对象的主键从数据库中查询该对象吗?那不还是要用到Find方法或者去写query语句进行主键匹配吗?


    Allen Li [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 Rainrcn 2012年4月22日 16:28
    2012年4月19日 2:45
    版主
  • 没办法做到,EF是数据库表的字段和模型属性映射的,你不能确定主键列是没办法查询的。

    Fighting like Allen Iverson. Neve give up!

    • 已标记为答案 Rainrcn 2012年4月22日 16:28
    2012年4月22日 11:57

全部回复

  • 您好,因为您给两个实体赋了相同的主键,所以会报这个错误。不太清楚您的意思,您是想要传入一个对象,根据这个对象的主键从数据库中查询该对象吗?那不还是要用到Find方法或者去写query语句进行主键匹配吗?


    Allen Li [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 Rainrcn 2012年4月22日 16:28
    2012年4月19日 2:45
    版主
  • 直接传一个泛型对象(不清楚此对象的主键列), 通过这个对象查询数据库(内部自己找主键列),然后查出这个对象的信息。

    例如: 

    public class User(){

        public int Id;//primary key

        public string Name;

    }

    User Function<User>(new User(){ Id=1 });

    这个方法传入一个User对象。 然后返回此User对象的所有信息。 应该怎么写?


    • 已编辑 Rainrcn 2012年4月19日 15:18
    2012年4月19日 15:13
  • 没办法做到,EF是数据库表的字段和模型属性映射的,你不能确定主键列是没办法查询的。

    Fighting like Allen Iverson. Neve give up!

    • 已标记为答案 Rainrcn 2012年4月22日 16:28
    2012年4月22日 11:57
  • 哦 谢了
    2012年4月22日 16:27