Articles of entity framework

本地化表和entity framework

我有一个场景,我需要在我的数据库中的对象的本地化值。 假设您有一个可以创建动物的应用程序,如果用户是英语,动物的“名称”属性的值将在UI中输入为“猫”,而它将以法语输入为“聊天”。 动物培养表将包含指向父表中相同动物的2条记录。 当读回值时,如果用户文化中不存在“名称”的值,则将使用默认值(最初创建对象的值)。 下图演示了如何在SQL中存储数据: 我正在尝试使用entity framework将此模式映射到对象模型,我对于解决问题的最佳方法有点困惑。 EF适合这个吗? 我应该使用EF4吗? .NET RIA Services将使用此EF模型。 谢谢, Pierre-Yves Troel

entity framework将导航属性设置为null

我有一个entity framework数据库第一个项目。 这是一个模型的提取: public partial class LedProject { public LedProject() { this.References = new HashSet(); this.Results = new HashSet(); this.History = new HashSet(); } public string Identifier { get; set; } public string Name { get; set; } public Nullable CompletionDate { get; set; } public System.DateTime CreationDate { get; set; } public System.Guid ProjectId […]

entity framework – 期望’providerInvariantName’参数的非空字符串

好吧,这可能与EF无关。 我正在尝试使用代码优先function,以下是我写的: – var modelBuilder = new ModelBuilder(); var model = modelBuilder.CreateModel(); using (AddressBook context = new AddressBook(model)) { var contact = new Contact { ContactID = 10000, FirstName = “Brian”, LastName = “Lara”, ModifiedDate = DateTime.Now, AddDate = DateTime.Now, Title = “Mr.” }; context.contacts.Add(contact); int result = context.SaveChanges(); Console.WriteLine(“Result :- “+ result.ToString()); } 上下文类: […]

是否需要处置entity framework上下文对象

我们在WCF服务方法中使用entity framework与数据库进行通信,最近我们在服务代码上运行代码审查工具。 像往常一样,我们通过工具获得了许多审核提案,许多评论意见建议处理Entity Framework上下文对象。 所以,我的问题是如果我在方法中使用entity framework上下文对象,一旦我退出该方法,GC不会清理上下文对象? 我们需要明确处理上下文对象吗?

多个添加的实体可能在entity framework中具有相同的主键

我正在使用EF 4.0进行项目。 Employee表有一列ReferEmployeeID ,其中包含引用系统中新员工的员工的员工ID。 所以Employee是一个自引用表。 现在,如果未添加到系统的员工即将添加,并且他还引用系统中的其他员工,则应该完全添加该行。 ActualEmployee保存尚未调用,然后是ReferEmployee.Employee = ActualEmployee 我理解问题是员工实际和推荐都将员工ID设置为0,但是如何解决这个问题。

DbContext和ObjectContext之间有什么区别

来自MSDN : 表示工作单元和存储库模式的组合,使您能够查询数据库并将更改组合在一起,然后将更改作为一个单元写回到存储中。 DbContext在概念上类似于ObjectContext 。 我虽然DbContext只处理与DB的连接和对DB工作的线程数。 现在我明白它包含跟踪机制? 我以为这是在ObjectContext 。 那么(用简单的英语)它们之间的区别是什么?

在移动服务数据库上启用代码优先迁移时出错

我有一个Azure移动服务项目(C#后端),我最近创建并附加到Azure SQL数据库。 我一直在尝试在该后备数据库上启用代码优先迁移,但在尝试更新数据库时会抛出错误。 我执行了所有常规步骤以启用迁移(启用迁移,添加迁移)。 但是当我尝试Update-Database时,它会返回以下错误: 无法在表’dbo.Appointments’上创建多个聚簇索引。 在创建另一个之前删除现有的聚簇索引“PK_dbo.Appointments”。 为什么会这样? 我的数据库中没有任何表,该项目几乎是默认的。

如何使用EDMX文件中的映射生成Entity Framework 6.x POCO类?

我正在将广泛的EDMX模型转换为POCO类。 我需要从Database First方法(带有ObjectContext的EDMX)到纯模型第一种方法(没有EDMX文件的DbContext)。 我需要使用最新的Entity Framework稳定版本:6.1.1。 我测试了一些方法: 通过右键单击EDMX设计器中的空白区域来添加EF 6.x DbContext Generator代码生成项。 这工作正常,但它不添加任何映射。 使用这种方法,我还是要使用EDMX文件。 这不是完整的Code First。 使用EF 5.x DbContext Fluent Generator进行C# 。 这会在设计时触发exception。 我无法使用它。 我不知道是不是因为我的VSentity framework工具已经更新到6.x. 在评论中使用替代TT,这表明它可以与EF 6.0一起使用也没有帮助。 使用EntityFramework反向POCO生成器 。 这是最糟糕的,因为它不会考虑我的任何类和导航属性重命名。 使用entity frameworkPower Tools Beta 4 。 同样,它仅支持从数据库生成,而不支持从EDMX文件生成。 我的要求: 我需要输入是EDMX文件,而不是数据库。 我需要输出是一个完整的Code First方法与Fluent映射。 我需要考虑在EDMX中定义的所有导航属性名称,否则它会破坏大型代码库,甚至更多,然后从ObjectContext迁移到DbContext将会中断。 你觉得什么对我来说是个不错的选择?

entity framework查询中令人难以置信的重复

针对特定视图的SQL查询返回3个不同的行。 select * from vwSummary where vidate >= ’10-15-2010′ and vidate <= '10-15-2010' and idno = '0330' order by viDate 但是如果我通过我的entity framework运行相同的查询,我得到3行,但所有3行都相同,相当于第三行。 firstVisibleDate = new DateTime(2010, 10, 15); lastVisibleDate = new DateTime(2010, 10, 15); var p1 = (from v in db.vwSummary where v.viDate >= firstVisibleDate && v.viDate <= lastVisibleDate && v.IDNo == "0330" select v).ToList(); […]

如何处理System.Data.Entity.Validation.DbEntityValidationException?

我的应用程序收到以下错误: EntityFramework.dll中出现“System.Data.Entity.Validation.DbEntityValidationException”类型的exception,但未在用户代码中处理 附加信息:一个或多个实体的validation失败。 有关详细信息,请参阅“EntityValidationErrors”属性。 尝试注册新用户时出现此错误。 ‘db.SaveChanges()’发生错误 这是代码: public ActionResult Registration(x.Models.User user) { if(ModelState.IsValid) { using(var db = new xDBEntities1()) { var crypto = new SimpleCrypto.PBKDF2(); var encrpPass = crypto.Compute(user.password); var sysUser = db.users.Create(); sysUser.email = user.email; sysUser.username = user.username; sysUser.password = encrpPass; sysUser.premium_credits = 0; sysUser.login_times = 0; sysUser.last_ip = Request.ServerVariables[“REMOTE_ADDR”]; sysUser.creation_ip = Request.ServerVariables[“REMOTE_ADDR”]; sysUser.banned […]