草庐IT

entity-mode

全部标签

c# - 如何在不传入连接名称的情况下在 Entities ObjectContext 上设置 EF Trace

我正在编写一个可重用的基础存储库类,开发人员将在其中传递一个代表ObjectContext的泛型。基础存储库将使用Activator.CreateInstance创建它的实例.调试时我想使用nuget包CommunityEFProviderWrappers.EFTracingProvider.所以我设置对象上下文的代码如下所示:publicvoidRenewDataContext(){#ifDEBUG//getthedefaultcontainernamevarcontainerName=Activator.CreateInstance().DefaultContainerName;/

c# - Entity Framework 6 错误无法加载指定的元数据资源

我在我的解决方案中使用EntityFramework6和“模型优先”,我将“数据模型”类分离到另一个项目中,这样我就可以添加对“数据模型”类的引用而不公开我的“数据模型”上下文”和连接。我不想将我的实体数据模型项目(尤其是数据库上下文等)公开到我的UI层。我有这个:我现在已经成功地将我的自动生成的实体类与我的数据模型分离,我通过添加一个实体或一个属性到一个实体来尝试它在项目Mapeo.BusinessEntity中更新。这是我来自DatabaseLayer(Mapeo.DatabaseModel)的连接字符串在我的服务层,我将此连接字符串复制到App.config,我的问题是当我想添加

c# - LINQ 到 SQL : Delete entity (by ID) with one query

我使用LINQToSQL已经有一段时间了,当谈到从数据库中删除实体时,我总是调用表的.DeleteOnSubmit并传入实体。有时我发现自己在写类似这样的东西:db.Users.DeleteOnSubmit(db.Users.Where(c=>c.ID==xyz).Select(c=>c).Single());这当然会导致两个查询。一个获取符合条件的实体,然后另一个删除它。通常我有需要删除的记录的ID,我想知道是否有更直接的方法仅通过ID从表中删除行? 最佳答案 通过附加部分对象并将其删除,无需手动工具SQL即可执行此操作:varm

c# - 在 Entity Framework 查询中过滤 "Includes"表

这是用于.NET3.5的EntityFramework:我需要查询一个表并包含一对多关系的“多”表的集合。我正在尝试将该集合作为查询的一部分进行过滤-我是EntityFramework的新手,而且我在弄清楚它时遇到了麻烦。简化示例:Author有Books,而Book有一个IsFiction列。我想要一个过滤后的作者列表,以及所有小说书籍。没有过滤器,很简单:varq=fromaindb.Authors.Include("Books")wherea.BirthYear>1900selecta;我可以事后过滤,比如:varfictionBooks=a.Books.Where(b=>b.I

c# - 无法使用 Entity Framework 创建 Controller - 无法检索元数据

我正在使用VS2013当我尝试创建一个“MVC5ControllerwithviewsusingentityFramework”时,我收到以下错误:therewasanerrorrunningtheselectedcodegenerator''UnabletoretrievemetadataforWebApplication.Domain.Entities.Product'.'EFDbContext.csusingSystem.Data.Entity;usingWebApplication.Domain.Entities;namespaceWebApplication.Domain.C

c# - Entity Framework : field of composite key cannot be nullable?

我有一个带有复合键的模型-行是键:publicclassItem{[Key,Column(Order=0)]publicintUserId{get;set;}[Key,Column(Order=1)]publicDateTime?Date{get;set;}}运行下面的代码会抛出异常DbEntityValidationException消息:TheDatefieldisrequired.:varit=newItem{Date=null,UserId=2};m_Entities.Items.Add(it);m_Entities.SaveChanges();//throwsexceptio

c# - Entity Framework 6 中的 MergeOption 在哪里?

我习惯了EntityFramework4,在调用某些View时,我必须确保将MergeOption设置为NoTracking,就像这样SHEntity.qry_UserPermissions.MergeOption=System.Data.Objects.MergeOption.NoTracking;但在更新到EF6.1时,我什至不再将MergeOption视为qry_UserPermissions的一部分。我必须设置它,否则EF有时会在我不想要的时候合并记录。我用谷歌搜索并没有任何运气,尽管这对我来说似乎是一个简单的问题。如何在EF6.1中关闭跟踪? 最佳

c# - Entity Framework /Linq 表达式从字符串转换为 int

我有一个像这样的表达式:varvalues=Enumerable.Range(1,2);returnmessage=>message.Properties.Any(p=>p.Key==name&&int.Parse(p.Value)>=values[0]&&int.Parse(p.Value)这可以正常编译,但是当它访问数据库时会抛出异常'LINQtoEntitiesdoesnotrecognizethemethod'Int32Parse(System.String)'method,andthismethodcannotbetranslatedintoastoreexpression'

c# - EF 代码首先是 : How to delete a row from an entity's Collection while following DDD?

场景是这样的:DDD声明您使用存储库获取聚合根,然后使用它来添加/删除它拥有的任何集合。添加很简单,您只需在要添加到的Collection上调用.Add(Itemitem)。保存时会向数据库中添加一个新行。但是,删除是不同的-调用.Remove(Itemitem)不会从数据库中删除项目,它只是删除外键。因此,是的,从技术上讲,它不再是收藏的一部分,但它仍在数据库中。仔细阅读,唯一的解决方案是使用数据上下文将其删除。但是根据DDD,域对象不应该知道数据上下文,因此必须在域外进行删除。解决这个问题的正确方法是什么?或者让数据库中充满孤儿是可以接受的吗(也许运行一个例程来清除它们)?

c# - Linq to Entities 中的动态 where 子句 (OR)

在帖子中here我学习了如何使用Linq的延迟执行来构建动态查询。但查询实际上是使用WHERE条件的AND串联。如何使用OR逻辑实现相同的查询?由于Flags枚举,查询应该搜索Username、WindowsUsername或两者:publicUserGetUser(IdentifierTypetype,stringidentifier){using(varcontext=contextFactory.Invoke()){varquery=fromuincontext.Usersselectu;if(type.HasFlag(IdentifierType.Username))query