Tej*_*ejo 5 .net c# entity-framework
我在这三个表之间有以下情况:
在我开始解释我在这里要完成的任务之前,让我澄清三件事:
我在EntityFramework上绘制了模型,但这实际上是数据库视图.假设字段类型匹配表;
我知道这个数据库模型很糟糕.但改变它是不可能的.我知道这会让我的生活更轻松.
我在这个项目上使用Visual Studio 2008和.Net 3.5.但我也接受基于Visual Studio 2010和.Net 4.0的解决方案.
所以,正如我试图在上面的图片中展示的那样,在我正在研究的这个项目中,我得到了这3个表.其中之一TransactionLine将文件关联到事务行,该事务行是完整事务的一部分.
现在,我在这里想要关联的是TransactionLine和File.但是,TransactionLine没有File表中的FileId字段.此表中的字段FileNumber和FileType代表File上的复合键.事实上,File的FileNumber和FileType永远不会重复.它们可能是主键,但话说再说一遍,我无法触及数据库结构.
我尝试通过将一对多的关联从文件转换为TransactionLine来关联TransactionLine和File.之后,我选择Association并切换到Mapping Details屏幕,然后选择Map to TransactionLine.
他要我填写模型屏幕的数据是:
所有TransactionLine标量属性都由它们相应的数据库字段设置,这些字段具有相同的名称.但是当我要指定与File表的链接时,我可以指定的唯一标量字段是FileId,我在TransactionLine表上没有.
我还尝试将File的FileNumber和FileType标量属性实体键标志设置为true,并将FileId实体标志设置为false,但没有成功,因为程序警告我数据库FileId是主键但是没有像上一样设置实体.
是否可以将TransactionLine FileNumber和FileType与File链接?这种情况有没有解决办法?
特别注意:FileId确实是File的主键.其他表格通过此字段与其链接.该TransactionLine这里是一个例外常识规则.:(
我们实现了我们的目标:D。
\n\n感谢Wily 博士的学徒为我们提供了有关解决方案的提示。
\n\n这是我们所做的:
\n\n我们创建了一个名为 VIEWFILEEXTRA 的视图,其中只有我们\xe2\x80\x99d 想要在关联中使用的字段;
之后我们基于这个视图创建了一个实体,命名为FileExtra;
将 FileExtra 映射到 VIEWFILEEXTRA(如果尚未完成);
将 FileNumber 和 FileType 从 FileExtra Entity Key 标志更改为 true;
从 File 中删除 FileNumber 和 FileType 标量属性;
在文件和 FileExtra 之间创建 1 对 1 关联;
设置关联映射中的标量属性指向 File\xe2\x80\x99s 数据库字段 FileNumber 和 FileType;
在 FileExtra 和 TransactionLine 之间创建一对多关联;
将关联映射指向 TransactionLine,并设置字段。
那\xe2\x80\x99就是它。非常感谢您的关注和提示:D。
\n 归档时间: |
|
查看次数: |
398 次 |
最近记录: |