Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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
C# 实体框架Brainmush混乱壮观_C#_.net_Wcf_Entity Framework - Fatal编程技术网

C# 实体框架Brainmush混乱壮观

C# 实体框架Brainmush混乱壮观,c#,.net,wcf,entity-framework,C#,.net,Wcf,Entity Framework,在一个大项目的早期阶段,我一直在涉猎.NET4中所有新的EF和WCF内容,我想我的大脑现在正式变成了污泥。这是自1.1天以来我在.NET中完成的第一个大规模开发工作。像往常一样,所有的事情都需要在昨天完成,所以我要迎头赶上 这就是我需要共同努力的地方——任何精神检查或指导都将不胜感激。该项目本身本质上可以被认为是一个豪华的电子商务系统,有多个基于web和Windows的客户端,通过实时数据连接到中央服务器 在服务器端: WCF服务的实现 使用EF连接到SQL Server 数据存储(可能最终

在一个大项目的早期阶段,我一直在涉猎.NET4中所有新的EF和WCF内容,我想我的大脑现在正式变成了污泥。这是自1.1天以来我在.NET中完成的第一个大规模开发工作。像往常一样,所有的事情都需要在昨天完成,所以我要迎头赶上

这就是我需要共同努力的地方——任何精神检查或指导都将不胜感激。该项目本身本质上可以被认为是一个豪华的电子商务系统,有多个基于web和Windows的客户端,通过实时数据连接到中央服务器

在服务器端:

  • WCF服务的实现 使用EF连接到SQL Server 数据存储(可能最终 拥有数百张表格和复杂数据库系统的所有其他设备)
  • 用于EF和 WCF必须在两个级别都可扩展 属性和类(即字段和 记录)级别,用于验证, 安全、高级审计和 其他自定义逻辑
在客户端:

  • WCF客户端
  • 基础类与 服务器端,但有一些 不存在自定义项
  • 当在上更新对象时 客户端,最好仅修改 属性应发送到 服务器
  • 将显示客户端WCF API的详细信息 可能最终会被出版 公开的,如此敏感的服务器端 不应忽略实现提示 通过API泄漏,除非 这是绝对不可避免的 在属性中包含EF属性 和班级
一般要求:

  • 网络效率很重要, 因为我们不想去 *从第一天开始,我就可以 预见数据流量和服务器 工作量呈指数增长 几年之内
  • 首先开发数据库,所以 EF生成的(POCO,C#)类 将以它为基础。不知怎的,他们 需要使其适合于 客户端和客户端上的EF和WCF 服务器端,并具有不同的层 定制,但似乎 为每个场景编写的自定义
对不起,这是如此开放,但正如我所说的,我的大脑完全变成了污泥,我把自己弄糊涂了,我被冻住了


有人能告诉我如何构建类来完成所有这些工作的一般方向吗?老实说,非常非常感谢。

没有特别顺序的提示:

  • POCO是避免数据对象中依赖EF类的一种方法
  • 考虑添加一个基于数据传输对象的中间层,以处理“仅通过修改的属性”(此要求将是棘手的部分)。这些DTO将在服务和客户端之间传递,以交换修改
  • 使用无状态通信模型(无WCF会话)能够非常轻松地实现负载平衡和故障转移
  • 在客户端和服务之间共享POCO,在服务器上使用子类化添加内部自定义信息
在服务器端,您将至少完成以下任务:

  • 服务合同和DTO的项目(共享)
  • POCO项目(共享)
  • WCF服务层的项目
  • 业务逻辑项目(由WCF层调用)

我对您的要求有几点注意:

WCF服务的实现 使用EF连接到SQL Server 数据存储(可能最终 有成百上千张桌子等等 综合体的其他装备 数据库系统)

您打算只构建作为一组WCF服务公开的数据访问层,还是构建作为WCF服务公开的重业务逻辑?这会严重影响其他需求。如果要执行前一个案例,请检查WCF数据服务。在后一种情况下,检查我的其他笔记

用于EF和WCF的基础类 必须在属性上同时可扩展 和类(即字段和记录)级别, 用于验证、安全、高级别 审核和其他自定义逻辑

将数据类分为两组。在内部,您的服务将使用作为域对象实现的POCO类。域对象将由EF具体化/持久化(您需要.NET4.0),并且它们还将包含自定义逻辑。如果您想构建繁重的业务层,还应该考虑域驱动设计=存储库、聚合根等

基础类与 服务器端,但有一些 不存在自定义项

第二组数据类将是数据传输对象,这些对象将由WCF服务公开,并在服务器和客户端之间共享。向客户端发送数据时,域对象将转换为DTO,从客户端返回时,DTO将转换为域对象

您的WCF服务应该构建在业务逻辑-域对象/域服务之上。WCF服务应该公开DTO从多个域操作传输数据的粗块接口(而不是健谈的CRUD接口)。这还将通过减少客户端和服务之间的往返次数来帮助您提高性能

当在上更新对象时 客户端,最好仅修改 属性应发送到 服务器

我认为这只有通过正确定义DTO或者通过一些自定义序列化才能实现

网络效率很重要, 因为我们不想去 *从第一天开始,我就可以预见数据流量和服务器 工作量呈指数增长 几年之内

如前所述,您必须将服务设计为可以进行负载平衡,并且还应该考虑缓存(分布式)-检查AppFabric。好主意是使用无状态服务

首先开发数据库,所以 EF生成的(POCO,C#)类 将以它为基础

这个