草庐IT

实体化

全部标签

c# - 使用 DTO 而不是在公共(public)程序集中共享对实体的引用是否有好处?

我正试图为一个让我抓狂了很长时间的问题找到一个明确的最终答案。通常表示BLL应包含业务逻辑和业务对象(BO),并具有对DAL的引用。另一方面,DAL不能引用BLL,因此它不能接受BO作为参数,或返回BO作为返回值。这个问题最传统的答案是:a)接受简单参数,返回(最好是Typed)DataSets和DataTables返回数据:命名空间DAL{公共(public)课联系方式公共(public)数据表GetContacts(){...}公共(public)UpdateContacts(DataTable联系人){...}b)第二个最推荐的解决方案是定义临时的、可序列化的数据传输对象(DTO

c# - 如果存储库用于聚合根,那么其他实体的数据访问逻辑应该放在哪里?

我有几个代表网络应用程序的对象。目前我有一个集群对象来表示应用程序的特定部署。在集群对象中,我有以下对象:服务器、客户、用户。这些对象都不能不属于集群而存在,因此我创建了一个ClusterRepository来从数据库中检索集群。现在,我需要从集群中获取客户列表,大概是通过使用集群对象中的方法,如GetCustomers()。现在,我最初的想法是将此操作的工作卸载到CustomerRepository,但由于存储库仅用于聚合根,数据访问逻辑应该放在哪里?这属于服务类别吗? 最佳答案 从本质上讲,聚合根是您可能需要作为对象图的根获取的

c# - 当子项具有身份 key 时,如何使用 EF 将多个子实体添加到对象?

我们正在使用EF5和SQLServer2012以下两个类:publicclassQuestion{publicQuestion(){this.Answers=newList();}publicintQuestionId{get;set;}publicstringTitle{get;set;}publicvirtualICollectionAnswers{get;set;}}publicclassAnswer{publicintAnswerId{get;set;}publicstringText{get;set;}publicintQuestionId{get;set;}publicvi

c# - LINQ to SQL 实体列名称属性被 guid 主键忽略

我当时使用LINQtoSQL(SQLServer2005SP3x64)处理一个简单的实体类。[Table(Name="TBL_REGISTRATION")]publicsealedclassRegistration:IDataErrorInfo{[Column(Name="TBL_REGISTRATION_PK",IsPrimaryKey=true,IsDbGenerated=true,AutoSync=AutoSync.OnInsert)]publicGuidRegistrationID{get;privateset;}/*otherpropertiesommitedforbrevi

c# - 在 Database First 中更改实体和属性名称

我正在启动一个新应用程序,该应用程序必须使用现有数据库,该数据库使用一些在.net中非常烦人的命名约定(表名以指定表的业务域的几个三元组开头,列名以表开头八卦,三卦都是大写的,用下划线等分隔,)。我想做的是编写一个简单的重命名规则(这就像找到最后一个下划线并获取后面的所有内容一样简单)并将其应用到EntityFramework中。我真的不想在编辑器中一个一个地编辑名字,尤其是因为数据库可能会改变,我不想重复多次。我正在使用DatabaseFirst(因为数据库已经存在并且它是“主数据库”)和EF4.xDbContextGenerator,它开箱即用(尽管类和属性的命名很糟糕)。我编辑了

c# - 保存域实体更改

这里有一个真实的例子,可以引出我的问题:我有一个AddCommentToArticleCommand,它有一个ArticleId、评论文本和电子邮件地址。这个命令:使用文章库获取文章(领域实体)如果文章存在,它会调用article.AddComment(commentText,emailAddress),将评论添加到文章中,如果不能添加则抛出异常(由于电子邮件格式无效、文章已关闭、评论未填写等)长等等...)但现在我不知道保存添加的评论的最佳方法是什么?我应该做类似articleRepository.Save(article)的事情吗?但是,如果只是添加评论,我为什么要保存文章?或者我

c# - 删除可选相关实体时如何将 FK 更新为 null

我是EF的新手,在删除我的对象方面遇到了一些困难。我的两个对象和关联的DbContext如下所示:publicclassContext:DbContext{publicContext():base(){}publicDbSetPersons{get;set;}publicDbSetVehicles{get;set;}}publicclassPerson{publicintPersonID{get;set;}publicstringName{get;set;}}publicclassVehicle{publicintVehicleID{get;set;}publicint?PersonI

c# - Entity Framework 更新/插入多个实体

只是我要完成的事情的概述。我们在我们的应用程序中保留远程数据库(第3方)的本地副本。我们使用api下载信息。我们目前按计划下载信息,然后将新记录插入本地数据库或更新现有记录。这是它目前的工作方式publicvoidProcessApiData(ListapiData){//gettheexistingaccountsfromthelocaldatabaseListexistingAccounts=_accountRepository.GetAllList();foreach(accountinapiData){//checkifitalreadyexistsinthelocaldata

c# - Linq To SQL 附加/刷新实体对象

在LinqToSql中,更新我的一个实体Faculty时,我正在创建Faculty对象的一个​​新实例,然后使用用户提供的值初始化一些属性。p>如果我将这个新对象附加到实体集并提交更改,则我未设置的属性将采用它们是任何数据类型的默认值。如何刷新新对象,使已设置的属性保留其值,而未设置的属性从数据库中获取值?谢谢 最佳答案 你试过吗context.Refresh(RefreshMode.OverwriteCurrentValues,faculty);提交更改后,context是您的linq2sql数据上下文,faculty是您要刷新的

c# - 使用服务的 DDD 实体

我有一个应用程序,我正在尝试使用至少一个名义上的DDD类型的域模型来构建,并且正在努力处理某个部分。我的实体有一些业务逻辑,这些业务逻辑使用我目前在某些域服务中进行的一些财务计算和费率计算,以及我放入值对象中的一些常量值。我正在努力解决如何让实体使用领域服务内部的逻辑,或者这些服务内部的逻辑是否属于那里。这是我目前所拥有的:publicclassTicket{publicTicket(intid,ConstantRatesconstantRates,FinancialCalculationServicef,RateCalculationServicer){Id=id;ConstantR