none
关于Entity Framework的问题,标题里实在说不清楚,有兴趣的进贴看看吧。 RRS feed

  • 问题

  • 首先,有一个如下图的数据库:
    这个库的特点是A,B两个表是通过C表关联的,是一个多对多的关系,而C表只有2个外键,无其他字段。
    在ADO.NET Entity Framework中生成的实体模型如下:
    问题在于C表生成不出来,如果我要操作C表应该怎么做?
    多谢各位!

    关注VSTS
    2011年12月19日 11:18
    版主

答案

  • 首先,有一个如下图的数据库:
    这个库的特点是A,B两个表是通过C表关联的,是一个多对多的关系,而C表只有2个外键,无其他字段。
    在ADO.NET Entity Framework中生成的实体模型如下:
    问题在于C表生成不出来,如果我要操作C表应该怎么做?
    多谢各位!

    关注VSTS

    把AID和BID设置成联合主键,但是它们又都是各自其它表的外键,然后尝试导入这三个表到EF的edmx文件中就可以了!你可以尝试一下。
       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处


    2011年12月20日 2:13
    版主
  • 这个没错啊。因为 C 表是关系表,表示表 A 和 B 的对应关系,它没有必要被生成为 EntitySet,您可以看到 Navigation Property 中就会各自有 A 和 B 了。

    从数据模型来说,也不应该在代码层面直接操作 C。而是通过 A.B 或者 B.A 进行操作 (如果是 1:1 关系), 或者 A.Bs.Add/B.As.Add (如果是 1:n 关系)。

    关系的设定可以通过 Navigation Property 的属性窗口。


    Mark Zhou
    2011年12月20日 9:29

全部回复

  • 尝试了下,出现同样的问题关注。。。

    2011年12月19日 12:19
  • 楼主用.NET 3.5 的 Entity Framework (V1.0) 还是 .NET 4.0 (V4.1) ?

    以楼主的这种表结构C表无需生成实体,在你操作的时候C表的数据会自动正确设置的。如果一定要让C表成为一个实体那试试给C表再增加一个自增列主键。



    理解的越多,需要记忆的就越少
    2011年12月20日 0:35
    版主
  • 首先,有一个如下图的数据库:
    这个库的特点是A,B两个表是通过C表关联的,是一个多对多的关系,而C表只有2个外键,无其他字段。
    在ADO.NET Entity Framework中生成的实体模型如下:
    问题在于C表生成不出来,如果我要操作C表应该怎么做?
    多谢各位!

    关注VSTS

    把AID和BID设置成联合主键,但是它们又都是各自其它表的外键,然后尝试导入这三个表到EF的edmx文件中就可以了!你可以尝试一下。
       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处


    2011年12月20日 2:13
    版主
  • 这个没错啊。因为 C 表是关系表,表示表 A 和 B 的对应关系,它没有必要被生成为 EntitySet,您可以看到 Navigation Property 中就会各自有 A 和 B 了。

    从数据模型来说,也不应该在代码层面直接操作 C。而是通过 A.B 或者 B.A 进行操作 (如果是 1:1 关系), 或者 A.Bs.Add/B.As.Add (如果是 1:n 关系)。

    关系的设定可以通过 Navigation Property 的属性窗口。


    Mark Zhou
    2011年12月20日 9:29