如何实现ASP.Net分层应用中不同层间共享实体数据模型?
- 内容介绍
- 文章标签
- 相关推荐
本文共计812个文字,预计阅读时间需要4分钟。
在您的C程序中,如何实现功能通常涉及以下步骤:
1. 需求分析:明确程序需要完成的具体任务。
2.设计算法:根据需求分析,设计解决问题的算法。
3.编写代码:使用C语言语法,将算法转化为可执行的代码。
4.编译与调试:编译代码,检查错误并进行调试。
5.测试与优化:测试程序功能,根据测试结果进行优化。
以下是一个简单的C程序示例,用于计算两个数的和:
c
#includeint main() { int num1, num2, sum;
printf(请输入第一个数: ); scanf(%d, &num1); printf(请输入第二个数: ); scanf(%d, &num2);
sum=num1 + num2;
printf(两个数的和是: %d\n, sum);
return 0;}
这个程序首先包含了`stdio.h`头文件,以便使用`printf`和`scanf`函数。在`main`函数中,定义了三个整型变量`num1`、`num2`和`sum`。然后通过`printf`提示用户输入两个数,并通过`scanf`读取用户输入的值。计算这两个数的和,并将结果存储在`sum`变量中。最后,使用`printf`输出计算结果。
如何在我的C#Web应用程序的所有层中共享自动生成的实体数据模型(生成的对象类),同时仅在数据层中授予查询访问权限?这使用典型的3层方法:数据,业务,演示.我的数据层返回IEnumerable< T>到我的业务层,但我不能将类型T返回到表示层,因为我不希望表示层知道数据层的存在 – 这是实体框架自动生成我的类的地方.
建议使用仅包含数据模型的单独层,但我不确定如何从实体框架提供的查询功能中分离数据模型.
如果您使用 POCO entities(.NET 4),那么这很容易(或者至少更容易).这有可能吗?你可以像Ben所说的那样创建DTO,但是你基本上是在减少并复制每个实体.如果您愿意,EF2将创建“哑巴”实体并动态添加更改跟踪,延迟加载等.
否则答案是你做不到的.如果实体依赖于实体框架,那么您不能在整个应用程序中使用它们而不拖动该依赖项.在这种情况下,您必须使用DTO.这是没有POCO实体的EF 1或EF 2的第三方选项.
automapper.codeplex.com/
编辑:以下是一些有用的链接,可以了解有关这一切的更多信息
>一般MS指南:
msdn.microsoft.com/en-us/library/bb738470.aspx
> POCO模板:
blogs.msdn.com/adonet/pages/walkthrough-poco-template-for-the-entity-framework.aspx
> POCO模板,包括如何
转到单独的项目:
blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-poco-templates-for-the-entity-framework.aspx
> POCO代理:
blogs.msdn.com/adonet/archive/2009/12/22/poco-proxies-part-1.aspx
>如何拆分模型:
blogs.msdn.com/adonet/archive/2008/11/25/working-with-large-models-in-entity-framework-part-2.aspx
>员工跟踪器示例应用程序
(图层,单元测试,模拟,
存储库等):
code.msdn.microsoft.com/ef4/Release/ProjectReleases.aspx?ReleaseId=4279
本文共计812个文字,预计阅读时间需要4分钟。
在您的C程序中,如何实现功能通常涉及以下步骤:
1. 需求分析:明确程序需要完成的具体任务。
2.设计算法:根据需求分析,设计解决问题的算法。
3.编写代码:使用C语言语法,将算法转化为可执行的代码。
4.编译与调试:编译代码,检查错误并进行调试。
5.测试与优化:测试程序功能,根据测试结果进行优化。
以下是一个简单的C程序示例,用于计算两个数的和:
c
#includeint main() { int num1, num2, sum;
printf(请输入第一个数: ); scanf(%d, &num1); printf(请输入第二个数: ); scanf(%d, &num2);
sum=num1 + num2;
printf(两个数的和是: %d\n, sum);
return 0;}
这个程序首先包含了`stdio.h`头文件,以便使用`printf`和`scanf`函数。在`main`函数中,定义了三个整型变量`num1`、`num2`和`sum`。然后通过`printf`提示用户输入两个数,并通过`scanf`读取用户输入的值。计算这两个数的和,并将结果存储在`sum`变量中。最后,使用`printf`输出计算结果。
如何在我的C#Web应用程序的所有层中共享自动生成的实体数据模型(生成的对象类),同时仅在数据层中授予查询访问权限?这使用典型的3层方法:数据,业务,演示.我的数据层返回IEnumerable< T>到我的业务层,但我不能将类型T返回到表示层,因为我不希望表示层知道数据层的存在 – 这是实体框架自动生成我的类的地方.
建议使用仅包含数据模型的单独层,但我不确定如何从实体框架提供的查询功能中分离数据模型.
如果您使用 POCO entities(.NET 4),那么这很容易(或者至少更容易).这有可能吗?你可以像Ben所说的那样创建DTO,但是你基本上是在减少并复制每个实体.如果您愿意,EF2将创建“哑巴”实体并动态添加更改跟踪,延迟加载等.
否则答案是你做不到的.如果实体依赖于实体框架,那么您不能在整个应用程序中使用它们而不拖动该依赖项.在这种情况下,您必须使用DTO.这是没有POCO实体的EF 1或EF 2的第三方选项.
automapper.codeplex.com/
编辑:以下是一些有用的链接,可以了解有关这一切的更多信息
>一般MS指南:
msdn.microsoft.com/en-us/library/bb738470.aspx
> POCO模板:
blogs.msdn.com/adonet/pages/walkthrough-poco-template-for-the-entity-framework.aspx
> POCO模板,包括如何
转到单独的项目:
blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-poco-templates-for-the-entity-framework.aspx
> POCO代理:
blogs.msdn.com/adonet/archive/2009/12/22/poco-proxies-part-1.aspx
>如何拆分模型:
blogs.msdn.com/adonet/archive/2008/11/25/working-with-large-models-in-entity-framework-part-2.aspx
>员工跟踪器示例应用程序
(图层,单元测试,模拟,
存储库等):
code.msdn.microsoft.com/ef4/Release/ProjectReleases.aspx?ReleaseId=4279

