我正在使用entity framework5( DBContext ),我试图find最佳的方法来深入复制实体(即复制实体和所有相关的对象),然后将新的实体保存在数据库中。 我该怎么做? 我已经研究过使用扩展方法,如CloneHelper但我不知道它是否适用于DBContext 。
不久之后,我想在我的表上创build复合键,并保留主键,以提高sql server的search性能。 每当我search一个没有主键的实体(即一串GUID)时,性能问题就出现在200k数据表上。 假设我有三个class public class Device{ public int ID { get; set; } public string UDID { get; set; } public string ApplicationKey { get; set; } public string PlatformKey { get; set; } public ICollection<NotificationMessageDevice> DeviceMessages { get; set; } } public class NotificationMessageDevice { [Column(Order = 0), Key, ForeignKey("NotificationMessage")] public int NotificationMessage_ID […]
我使用的是Code First方法的entity framework5。 我需要从存储过程读取返回值; 我已经阅读输出参数和发送input参数,但我不知道如何读取返回值。 可能吗? 这里是我用来调用存储过程的代码: var outParam = new SqlParameter(); outParam.ParameterName = "@StatusLog"; outParam.SqlDbType = SqlDbType.NVarChar; outParam.Size = 4000; outParam.Direction = ParameterDirection.Output; var code = new SqlParameter(); code.ParameterName = "@Code"; code.Direction = ParameterDirection.Input; code.SqlDbType = SqlDbType.VarChar; code.Size = 20; code.Value = "123"; var data = _context.Database.SqlQuery<Item>("exec spItemData @Code, @StatusLog OUT", code, outParam); var […]
我遇到了这里描述的确切问题(请参阅“无法附加到已删除的MDF文件”一节),但是没有告诉问题的解决scheme… 简而言之,问题是在删除.mdf文件后,当我尝试使用EF 5.0访问数据库时,会引发以下exception。 DataException-> EntityException-> SQLEXCEPTION: 无法将文件“{0}”附加为数据库“{1}” 我没有删除数据库文件,现在当运行应用程序期望它使用它的初始化程序时,我得到了令人讨厌的错误消息。 任何方法来解决这个问题?
继Julie Lerman的Pluralsight“Entity Framework 5入门”课程的“代码优先build模”部分之后,我创build了两个具有一对一或一对一关系的POCO类:一个父代(User)和一个可选孩子(UserDetail)。 用户和UserDetail数据模型图(点击查看)。 请注意,图中的UserId属性是UserDetail的主键和外键 。 相关代码: public class User { //… [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int UserId { get; set; } /* Has a 1:0..1 relationship with UserDetail */ public virtual UserDetail UserDetail { get; set; } //… } public class UserDetail { //… /* Has a 0..1:1 relationship with User */ public virtual […]
我知道一些LINQ to Entities和LINQ to Objects的区别,第一个实现了IQueryable ,第二个实现了IEnumerable ,我的问题范围在EF 5之内。 我的问题是这三种方法的技术差异是什么? 我看到,在许多情况下,所有这些工作。 我也看到使用它们的组合.ToList().AsQueryable() 。 这些方法究竟意味着什么? 是否有任何性能问题或会导致相互使用的问题? 为什么会使用.ToList().AsQueryable()而不是.AsQueryable() ?
我已经安装了MS SQL Server 2008 R2,当我尝试从EDMX文件下的数据库更新模型时,我正面临着这个错误。 无法加载文件或程序集Microsoft.SqlServer.management.sdk.sfc版本11.0.0.0 我试图从这里安装Microsoft SQL Server 2008 R2共享pipe理对象,但没有喜悦。
在ASP.NET MVC3环境中,我一直在探索在Entity Framework 5中编辑/更新logging的不同方法,但是到目前为止,没有一个方法可以勾选我需要的所有框。 我会解释为什么。 我已经find了三个方法,我会提到的利弊: 方法1 – 加载原始logging,更新每个属性 var original = db.Users.Find(updatedUser.UserId); if (original != null) { original.BusinessEntityId = updatedUser.BusinessEntityId; original.Email = updatedUser.Email; original.EmployeeId = updatedUser.EmployeeId; original.Forename = updatedUser.Forename; original.Surname = updatedUser.Surname; original.Telephone = updatedUser.Telephone; original.Title = updatedUser.Title; original.Fax = updatedUser.Fax; original.ASPNetUserId = updatedUser.ASPNetUserId; db.SaveChanges(); } 优点 可以指定哪些属性更改 视图不需要包含每个属性 缺点 2 x查询数据库加载原始然后更新它 方法2 – […]