Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 从前端读取实体框架的实体_Asp.net_Visual Studio 2012_Entity Framework 5 - Fatal编程技术网

Asp.net 从前端读取实体框架的实体

Asp.net 从前端读取实体框架的实体,asp.net,visual-studio-2012,entity-framework-5,Asp.net,Visual Studio 2012,Entity Framework 5,您好,我如何从前端访问实体框架生成的实体? 从我的业务逻辑,我可以访问它,但我不能从前端访问它 我可以将实体从实体框架项目移动到业务逻辑层还是在其中复制它们 我认为应该有一个简单的方法来实现这一点,因为我不敢相信微软已经开发出了一种模式,用户界面应该直接引用数据层,这是人们在8岁时所做的事情,我将从Entity Framework 5/VS2012的角度向您介绍这一点。然而,其他版本也应该类似地工作 假设从上面可以看出,您的数据项目中有三个项目(数据/业务/ui)和一个实体框架上下文(.edmx

您好,我如何从前端访问实体框架生成的实体? 从我的业务逻辑,我可以访问它,但我不能从前端访问它

我可以将实体从实体框架项目移动到业务逻辑层还是在其中复制它们


我认为应该有一个简单的方法来实现这一点,因为我不敢相信微软已经开发出了一种模式,用户界面应该直接引用数据层,这是人们在8岁时所做的事情,我将从Entity Framework 5/VS2012的角度向您介绍这一点。然而,其他版本也应该类似地工作

假设从上面可以看出,您的数据项目中有三个项目(数据/业务/ui)和一个实体框架上下文(.edmx)项

  • 为您的解决方案创建一个新项目(类库)。该项目将容纳您的实体(POCO)对象,因此请适当命名它

  • 创建从数据项目到新实体项目的项目引用

  • 在新项目中创建新项(EF 5.x DbContextGenerator)

  • 删除新创建项中的Context.tt文件

  • 打开另一个.tt文件,修改定义
    inputFile
    的行以映射到.edmx文件

    const string inputFile=@./.edmx”

  • 在您的数据项目中展开“mydata”.edmx并找到名为“mydata”.tt的实体模板(您将知道它是正确的模板,因为它展开以显示您的实体列表),然后将其删除

  • 修改“mydata.Context.tt”文件:向下滚动,直到使用stations看到
    。将using列表附加到步骤3中创建的实体的名称空间中

  • 现在,您可以创建从业务和UI项目到实体项目的引用


  • 希望这能有所帮助。

    我不知道如何移动实体,我必须做些什么才能移动它们?很明显,我没有要求任何东西可以阻止您在DataGridView中显示由上下文获取的实体。什么对你最好取决于你没有提到的很多事情。复杂性,web/winforms/WPF/OData等等。见鬼,也许EF甚至不是最好的选择。通常,研究示例应用程序效果更好,例如,这是一个完全有效的问题。有了DTO架构,很多设计都能很好地工作,当然使用EF也是可能的,不过首先使用代码可能会更容易(见下面的答案)。或者,有些人喜欢代理数据类,从而完全隐藏UI中的数据实现。