Entity framework 4 EF4独立协会-为什么要避免它们?

我在MSDN上看到了以下评论(和): “请注意,通常应避免独立的关联,因为 N层和并发性变得更加困难。” 我是EF4新手,正在构建一个n层web应用程序。这听起来像是一个重要的陷阱。有人能给我解释一下这意味着什么吗?如果你是EF新手,从EF4开始,简单的答案是忽略这一点-你几乎肯定会使用外键关联,而不是独立关联 外键关联由数据库中的外键关系支持,该关系在概念模型中有明确描述。这种联系对EF4来说是新的,我知道这是一种让步,因为人们与独立的协会之间存在一些问题 严格地说,如果您想将存储模式和概念模

Entity framework 4 如何在Entity Framework中有效地设置多对多EntityCollection?

当Entity Framework为与多对多关系表相连的两个数据库表(比如Table1和Table2)生成ObjectContext时,它不会为外部参照表创建对象,而是选择关系两端的集合属性。因此,在表1中有EntityCollection表2,在表2中有EntityCollection表1。在大多数情况下,这真的很好 但是,在这个场景中,我有一个整数列表,这些整数表示应该在Table1.Table2s集合中的Table2行的数据库ID 我看不到任何方法可以仅仅使用实体键来设置集合,所以我只能在

Entity framework 4 EF4从嵌套表和共享表加载

在我的数据库中,我有一个公司。该公司有分支机构,其地址为。该公司还有账户,这些账户有返回地址,这些账户也有地址 我想在一个查询中加载所有这些数据,例如: from c in context.Company .Include("Branches").Include("Address") .Include("Accounts").Include("ReturnAddresses").Include("Address") where c.CompanyI

Entity framework 4 实体框架4网站架构

嗨,我被赋予了使用EntityFramework4创建一个N-Teir网站的任务,我遇到了一些困难,据我所知,很可能是困难重重 到目前为止,我的计划是有这些层 网站(应用层), 我称之为Name.Framework(BLL), 名称.数据(DAL), 名称.实体(包含在网站/bll中使用的POCO类和其他结构类, Name.Common(实用程序类) 我曾尝试使用repository类,但我正在努力使事情按照我认为的方式进行 如果我想使用.include(),这是在我的存储库中还是由业务层负责?

Entity framework 4 查询实体集合

我已经用默认的EF方式映射了我的类,并且我所有的FK都是EntityCollection,所以例如Bike.Wheels就是EntityCollection 如何使用车轮 我要取回第一和第二个轮子 我想绕着轮子转 我想把所有的轮子都装上 我无法使用get/select/[] 我遗漏了什么吗?嗯,有些操作非常简单,有些操作有点笨拙,所以您可能需要重新设计一些方法来使用简单的方法 要在所有轮子上循环,只需使用foreach语句: using(BikeEntities ctx = new Bike

Entity framework 4 在实体框架中使用POCO支持时,是否有方法从实体获取CLR类型?

我正在使用实体框架v4的POCO支持。我想获取映射到该实体的POCO类的类型。例如,您可以从ObjectStateManager获取ObjectStateEntry。然后,该条目具有对实体的引用。实体的类型为object,因此在您强制转换它之前它是无用的 如果您知道实体的类型在编译时可能是什么,但如果您想在运行时使用它,那么这很好。实体框架是否在任何位置存储该实体的CLR类型。是的,您可以执行以下操作: var mappedType = MyObjectContext.GetObjectType

Entity framework 4 实体框架自连接&;子对象

使用.NET4.0中的实体框架,如何为下面的对象设置实体 我有一个项目,人们可以评论,然后人们可以评论评论等等 例: 项目 -评论 --评论 --评论 ---评论 -评论 -评论 --评论 我在sql中的当前表结构: 评论 ID(int) ParentCommentID(int) ProductID(字符串) 标题 正文 谢谢一个好主意是查看 它们对post/comments有类似的设置,因此您可以看到它们是如何设置模式的。Hanselman也有一篇关于OData服务的博客文章,所以你可以查看他

Entity framework 4 实体框架4一对多关联的自有表

我使用的是EF4提供的模型优先方法。我有两个实体:用户和功能。正如您所想象的,用户拥有一组功能。在对该关联进行建模并生成SQL之后,结果是表功能对用户具有FK。我想要的是让EF生成另一个表UserFeatures来存储关系。有没有一种方法可以在不建模UserFeatures实体的情况下实现这一点?EF将仅在您想要建模M:N关系时创建这样的表。没有理由为1:N创建这样的表,除非您在designer中以某种方式对其进行建模,否则EF不会生成该表。EF将仅在您要为M:N关系建模时创建这样的表。没有理由

Entity framework 4 EF为非EF创建的分部类中的特性填充数据

嗨 在检索实体的数据时,我需要获取一些额外的信息。但是,额外的属性在不同的表中。我创建了一个具有这些额外属性的分部类。 如何让EF填充额外的属性 谢谢您必须手动填充它们。一旦属性不是映射实体的一部分(它们可能不属于映射实体),EF就不会对它们做任何事情,因为它不知道它们 另一种方法是不使用原始实体,而是使用一些自定义Linq to entities查询填充非映射或匿名类型。最后一个选项是使用实体模型中定义的特殊只读实体,并在EDMX文件中手动创建。在Ladislav的文章之后。最简单的方法?创建

Entity framework 4 获取实体的上一个值

我需要得到一个实体的前一个值 我的要求是;我在编辑页面中有一些输入字段 1用户可以在此处输入一些值,然后按保存按钮,此时用户应该可以保存它 2用户可以在此处输入一些值,然后按取消按钮。此时,在用户开始编辑页面之前,页面应重新加载任何值 我的问题是,实体框架能帮助我们获得对象的先前值吗? 自我跟踪与此相关吗?您想做的是: myContext.Refresh(RefreshMode.StoreWins, myObject); 这将要求上下文重新加载实体,删除对对象的任何更改并替换数据存储中的属性值

Entity framework 4 实体框架4.2枚举支持

EF 4.2代码是否首先支持枚举类型?如果是,你如何使用它?使用Nuget EntityFramework包时,以下内容不会为enum属性创建字段 public class FooContext : DbContext { public IDbSet<Foo> Foos { get; set; } } public class Foo { public int Id { get; set; } public string Name { get; set; }

Entity framework 4 复合密钥的EF映射 公共类MyConfiguration:EntityTypeConfiguration { 公共MyConfiguration() { HasKey(c=>new{c.MyCodeId,c.EffectiveDateFrom,c.EffectiveDateTo}); 属性(c=>c.MyCodeId); 属性(c=>c.EffectiveDateFrom).HasColumnName(“MyEffectiveDateFrom”); 属性(c=>c.EffectiveDateTo).HasColumnName(“MyEffectiveDateTo”); ToTable(“My_代码”); HasMany(d=>d.MyGroups).WithRequired().HasForeignKey(k=>k.MyCodeID); } }

这是我在EF4中的配置类 我已经定义了IList类型的“MyGroups”属性 “MyGroup”类没有“EffectiveDateFrom”和“EffectiveDateTo”属性 引发异常后的运行时: System.Data.Edm.EdmAssociationConstraint:关系约束中从属角色和主要角色中的属性数必须相同 查询: 当父表中使用的所有列在子表中都不可用时,如何在EF4中创建此类映射?您无法创建此类映射,因为它无效。依赖实体中的外键必须包含主体实体中定义的复合主键的所有组

Entity framework 4 如何使LINQPad表达式与entityFramework一起工作

以下表达式在LINQPad中正确运行。 对于EntityFramework,它运行但不排序(没有运行时错误,只有错误的结果) 非常简单的表格: 分数-整数0-300 类型-字符串-其中四个(男-女,游戏和系列) 日期-这里不重要 var scoresTest = from h in HighScores where h.Date > startDate orderby h.Type, h.S

Entity framework 4 EF4 CTP5代码优先方法忽略表属性

我使用的是EF4 CTP5代码优先的方法,但在让它工作时遇到了麻烦。我有一个名为“Company”的类和一个名为“CompanyTable”的数据库表。我想将Company类映射到CompanyTable表,因此有如下代码: [Table(Name = "CompanyTable")] public class Company { [Key] [Column(Name = "CompanyIdNumber", DbType = "int")]

Entity framework 4 实体框架4.1-选择

我使用的表达方式如下: ProductRepository.Query.Include(Function(x) x.ChildProducts.Select(Function(y) y.PriceTiers.Where(Function(z) z.IsActive))).Where(Function(x) x.Categories.Any(Function(y) y.ID = ID)) 得到这个错误: The Include path expression must refer to a na

Entity framework 4 使用EF4和存储库模式的对象查询模式

关于存储库模式和查询对象模式的问题。我使用EF4,并在VS2010中使用ADO.NET POCO实体生成器从数据库模型生成了POCO类。edmx文件和tt文件(POCO类)位于两个不同的项目中 我的存储库是特定于域的,例如DocumentRepository和UserRepository。我的数据库模型与我的域模型的不同之处在于,我实现了映射器,以便将域对象转换为一个或多个数据库表(反之亦然)。一个例子是,我的文档域类被建模为数据库中的3个表(因此也是POCO类) 在这种情况下使用域对象时,您将

Entity framework 4 实体框架4.0在将概念模型与CLR类型匹配时遇到问题?

我的应用程序中出现了一个奇怪的错误,我无法解决。错误如下 The Member 'Company' in the conceptual model type 'EntityModel.FK_Users_Companies' is not present in the CLR type 'EntityModel.FK_Users_Companies'. 这对我来说很奇怪,当我在谷歌上搜索时,我找不到任何关于这个确切错误的信息 关于如何解决此问题有何建议?此错误表示您的类(CLR类型)与EDMX模

Entity framework 4 Ado.NET模拟生成器之后不存在DateTime

我使用ADO.NET模拟上下文生成器从EDMX文件生成实体类,以便在单元测试中使用它们。但是,在生成实体并尝试构建项目后,出现以下错误: The type name 'DateTime' does not exist in the type 'MyProject.Models.System' 在代码中,DateTime属性以以下格式声明: public virtual System.DateTime LastActive 如果我将System.DateTime更改为just DateTime

Entity framework 4 通用存储库应直接使用工作单元或DbContext

当我将通用存储库与实体框架一起使用时,我是否需要使用工作单元,因为据我所知,多个存储库之间没有坐标。或者让通用存储库直接在DbContext上工作,因为不需要UOW 哪一种是最佳实践:为每个实体类型使用通用存储库或实现存储库类 我不知道您指的是哪个通用存储库,但下面是我使用通用存储库的经验 通常,EntityFramework不需要工作单元或存储库。EntityFramework完成了这一切 然而,在我的第一个EF项目中,我发现自己创建了一个工厂类,分发并保存所有实体。该类没有完成工作单元的全部

Entity framework 4 EF4数据库第一个可配置模式

我有一个问题,几天来我一直在努力解决,但我无法找到正确的方法。 我使用的是EF4,我有一个应用程序,我首先使用数据库,它最初创建了ObjectContext,我没有加载DbContext生成器并生成它 问题是,我需要应用程序能够从一些配置文件中获取数据库模式,而不是总是使用“dbo”默认值。 我试图在“OnModelCreating”重载方法中使用“ToTable”方法(因此我可以指定模式),但作为sai,因为我首先使用数据库,所以没有调用该方法 如何配置架构名称? 这可能吗? 我也读过这篇文章

Entity framework 4 在实体框架中重命名列

我有一个“UserLogin”表,其中包含以下列:id和userid。假设我想在Gridview中将userid显示为“user”,然后我们用sql编写查询 select userid as user from UserLogin 但我使用的是实体框架。如何在实体框架中解决此问题?通常在GridView控件中为该列指定不同的标题文本 但您可以通过使用在实体框架中实现类似的功能 select new { user = UserLogin.userid, id = UserLogin.id };

Entity framework 4 实体框架4中的存储库模式我们应该在何时处置?

EF新手,我注意到使用存储库模式可以真正简化事情,也可以让我做一些模拟。到目前为止还不错 我的问题 objectContext的一个典型用法是尽快销毁,见下文 使用(var context=newschoolEntities()) { 上下文。添加到部门(部门); SaveChanges(); } 使用Repository模式我注意到实际上没有人使用“Using模式”,例如 使用(var repository=newrepository(new MyContext)) { re

Entity framework 4 Ninject不';当对象超出范围时,不要调用Dispose

我惊讶地发现,当Ninject创建的对象被定义为InRequestScope时,在请求结束时,至少有一个对象没有被处理 以下是我试图处理的对象: 接口: public interface IDataContext : IDisposable { MessengerEntities context { get; set; } } MessengerEntities是实体框架对ObjectContext(我的上下文对象)的实现 然后我创建了一个具体的类,如下所示: public class

Entity framework 4 sql位允许null ef4

我的数据库中有下表 表格问题 问题(i) 应答位为空 问题串 <Property Name="questionlog_id" Type="int" Nullable="false" oreGeneratedPattern="Identity" /> <Property Name="question_id" Type="int" Nullable="false" /> <Property Name="answer" Type=

Entity framework 4 LINQ链接Where子句

我正在尝试编写一个动态搜索和chain子句,我在下面有我的类和示例代码 public class Person { public int PersonId { get; set; } //More Fields .. } //Link Table public class PersonAddress { public int PersonID { get; set; } public int AddressID { get; set; } //More

Entity framework 4 实体框架通用存储库的实现

自从引入版本1以来,实体框架发生了巨大的变化。EF4.1改进了“代码优先”和“流畅”映射,这真是令人印象深刻。但是,我担心EF4.1上的复杂查询实现,因为它强烈依赖于DbContext。实体SQL和LINQtoEntities通过SQL查询不断更改其行为。我觉得我们需要一个强大的查询机制,比如HQL或Criteria来克服这个问题。您认为呢?许多现代.NET ORM都提供IQueryProvider实现(包括NHibernate)。我选择使用POCO T4模板删除对EF的直接依赖,然后对其进行修

Entity framework 4 将表添加到实体框架模型会导致RPC“;“参数太多”;错误

从设计器更新EDMX模型以在大型数据库上添加表时,输出窗口中返回错误: 由于以下异常,无法生成模型:' 执行命令定义时出错。看内在 细节例外 传入的表格数据流(TDS)远程过程调用(RPC) 协议流不正确。中提供的参数太多 这是一个RPC请求。最大值为2100。”。正在从加载元数据 数据库花费了00:00:04.51496。生成模型需要花费大量时间 00:00:14.0108568. 由于错误,无法生成模型 以下异常:“执行命令时出错。” 定义。有关详细信息,请参见内部异常 传入的表格数据流(T

Entity framework 4 返回什么类型的数据?

我有一个方法,返回一个数据来填充datagridview(以win形式) 我使用EF,我的方法中有内部连接,工作良好且正确 在数据源可以接受之前,我应该返回什么类型的数据 private ??? getData() { using(var context =new context()) { var query = from a in context.Table1 join b in context.Table2 on a.Table1ID equals b

Entity framework 4 EF 4的删除功能设置为空

我正在EDM设计器中使用EF4。我有两个表:用户和链接。它们之间的关联是,一个用户可以发布多个(*)链接,而一个链接最多可以有(0..1)个用户(发布链接的用户)或没有(null) 我的目标是,当我删除一个用户时,其所有链接中的FK都设置为null。问题是EF4似乎只支持操作:级联和无 如何使用EF4实现On Delete Set Null规则?EF在处理加载的实体时默认使用此规则。如果将已加载的用户标记为已删除,则所有已加载的链接都将丢失对此用户的引用。对于未加载的实体,必须在数据库中设置此规

Entity framework 4 实体框架上下文是池化的,很像数据库连接吗

数据库连接指南简单易懂。尽可能晚地打开连接,并尽快将其关闭。这当然是正常的,因为连接池 实体框架上下文的故事是什么?同样的模式适用吗 连接池由您的提供商决定 如果使用构造函数创建ObjectContext,该构造函数采用EntityConnection,则将使用现有连接。否则,它将要求提供商提供一个新的 查看详细信息,但请记住,您的提供商可以做任何它想做的事情

Entity framework 4 实体框架4.0。实体创建

我们有两个列相同的实体,但实体名称不同。我可以使用第一个实体实例创建2个实体吗 我们尝试执行.AddObjectEntity2 name,entityOneinstance,但失败 请说明这是否可行或其他方法 提前感谢由于实体的类型不同,您的添加操作肯定会失败 我认为在实体类型之间需要一个映射器或显式/隐式转换操作符 为了清楚起见,对于对话解决方案,假设您有Entity1和Entity2,并且都有属性、属性、属性_1、属性_2和属性_3。我假设您有默认的代码生成策略,而不是POCO或其他。然后您

Entity framework 4 如何向EF4添加属性

如何将新属性添加到将显示名称room的工作区 此属性不能在实体设计器中定义,除非它在数据库中也定义为工作面板表的列。为生成的实体创建分部类并添加自定义特性: public partial class WorkPanel { public string Name { get { return (Table != null && Table.Room != null) ? Table.Room.Name : nu

Entity framework 4 WCF ria服务SP1超时已过期

我的解决方案是Silverlight,它使用WCF RIA服务SP1和实体框架4 我在加载大数据时遇到问题 我收到了这个错误信息 System.ServiceModel.DomainServices.Client.DomainException:超时已过期。操作完成前已过超时时间,或者服务器没有响应 我认为超时是个问题,所以我尝试了下面的代码。当我没有安装WCF Ria服务“SP1”时,它就工作了。 但自从我安装了“SP1”后,它就不起作用了 ChannelFactory channel=((W

Entity framework 4 使用固定并发模式保存前锁定

我正在结合EF4.0学习并发性,并且对所使用的锁定模式有疑问 假设我在版本号属性上配置了固定并发模式 现在假设我从数据库上下文中获取一个记录实体并编辑一些属性。当在其上下文上调用SaveChanges时,版本将递增。如果当前数据库上下文版本与原始记录实体的版本匹配,则继续保存,否则EF将抛出OptimisticConcurrencyException 现在,我感兴趣的是:在检查版本之间,总是有一段很短的时间,不管它有多小。因此,理论上,其他人可能只是更新了比较和实际保存之间的记录,因此可能会损坏

Entity framework 4 无法在对象';dbo.User'\r\n语句已终止

我有一个用户表。对于CreatedBy等字段,存在来自其他表的对此表的引用 问题是,当我插入另一个表的一行(比如“x”)时,它试图将新用户插入到用户表中 它应该做的是将CreatedBy作为现有用户插入到表“x”中 使用实体框架4。以前有人遇到过这样的问题吗?您可以将实体与相关实体一起插入,也可以不插入相关实体而插入实体,只引用现有实体。这取决于您编写的代码 例1: User-User=getuserfromwhere(); 使用(var context=new MyContext()) { 订

Entity framework 4 EF4如何使用动态select和where语句创建查询

我试图为我的模型创建一种动态加载程序,在这里我可以指定我需要的属性,它的主要目的是创建一个restapi,它为各个模型提供动态信息,如JSON API可通过以下方式访问:。 /api/model?id=581D1393-3436-4146-A397-E47CF5419453&fields=foo、bar、baz 为此,我使用了中所述的方法,问题是我需要使用连接在多个表上进行查询,并从不同的表加载数据,据我所知,在这种情况下我无法这样做 现在我对实体SQL使用ObjectQuery方法,在这里我可

Entity framework 4 在.NET实体框架中使用字符串属性时,如何控制SQL查询参数的类型

在数据库表上有一列类型为char(2) 当我在linq中使用参数时,例如。其中(x=>x.code==code)SQL查询参数被转换为varchar(max),我希望它是char(2),以避免隐式转换。这是因为查询没有以我希望的方式使用数据库的索引 Property(c => c.Code) .HasColumnType("char") .IsFixedLength() .HasMaxLength(2); 代码优先映

Entity framework 4 急切地首先加载带有EF代码的对象图

我有一个相当深的对象图,并希望急切地加载整个图形 我知道我可以使用.Include()急切地加载特定的导航属性 然而,这看起来很脆弱(如果我添加了导航属性,我还必须添加一个额外的.Include),并且需要(在我的例子中)相当多的.Include()语句 是否有方法指示EF急切地加载整个对象图?您必须手动包含要急切加载的每个导航属性。EF不提供任何内置方式来包含所有 但是,这似乎很脆弱(如果我添加导航属性,我必须 还要添加一个额外的.Include)并需要(在我的例子中)很多 .Include(

Entity framework 4 使用EntityFramework插入时防止同步标识列

使用EF4/w SQL Server 2008 以下代码(针对具有PK的表,定义为Int-IDENTITY(1,1): 分析SQL时的结果是insert语句,随后是对我要插入的表的查找: SELECT ID FROM Table WHERE ID = @@ScopeIdentity AND @@RowCount > 0 有没有办法防止EntityFramework检索Identity种子?我的.Net代码中不需要该ID,在高容量的情况下,这似乎是一个浪费的操作 另外,是否有办法告诉EF改

Entity framework 4 EF 4.1 CodeFirst GetValidationErrors

如果我在映射文件中定义了下一步(单元和机器之间的1对多关系): 当我添加新实体Machine.UnitOfMeasurement=null时,为什么DbContext在调用GetValidationErrors时不返回验证问题,以及我可以如何检测它们。若我允许EF尝试更新,它将向用户返回无意义的消息,如外键引用错误,而我可以从DbEntityValidationResult(发出验证错误的ex属性名)提取有意义的信息给用户 我将IDataErrorInfo用于验证规则,而不是属性。EF验证不会验

Entity framework 4 重置OnObject Materialized中实体的修改状态

当我将实体保存到数据库时,我会加密OnSaveChanges事件处理程序中的值。当实体从数据库加载回来时,我将使用OnObject Materialized对值进行解密 这非常有效,但如果在实体化后对其中一个实体调用save,则对象上下文会认为该实体已被修改,并将其保存回数据库 那么,如何重置修改后的状态,使其认为解密后的值就是数据库中的值呢

上一页   1   2    3   4   5   6  ... 下一页 最后一页 共 27 页