Tag: entity framework

entity framework6代码优先 – 通过注释多对多的方式

是否有可能在entity framework6中创建具有代码优先和注释的单向多对多关联? 例: class Currency { public int id { get; set; } } class Country { public int id { get; set; } // How i can annotate this property to say EF that it is many-to-many // and it should create mapping table? // I don’t need navigation property to Country in Currency […]

为什么我不能在单个服务器请求中插入带有外键的记录?

我正在尝试使用外键进行简单插入,但似乎我需要为每个记录插入使用db.SaveChanges() 。 如何在此程序结束时只使用一个db.SaveChanges() ? public static void Test() { using (var entities = new DBEntities()) { var sale = new SalesFeed { SaleName = “Stuff…”, }; entities.AddToSalesFeedSet(sale); var phone = new CustomerPhone { CreationDate = DateTime.UtcNow, sales_feeds = sale }; entities.AddToCustomerPhoneSet(phone); entities.SaveChanges(); } } 运行上面的代码后,我得到以下exception: System.Data.UpdateException:更新条目时发生错误。 有关详细信息,请参阅InnerException。 指定的值不是有效常量类型的实例参数名称:value。 编辑:更改了示例代码并添加了返回的exception。

指定的命名连接在配置中找不到,不打算与EntityClient提供程序一起使用,或者无效

我在解决方案中有两个项目。 PizzaSoftware.Data PizzaSoftware.UI 在Data项目中,我有我的Entity Framework模型,它连接到我的数据库。 我的UI项目有一个项目引用数据,这里是它的样子: 我在UserControls文件夹中创建了一个用户控件。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using PizzaSoftware.Data; namespace PizzaSoftware.UI.UserControls { public partial class AutoCompleteTextBox : UserControl { AutoCompleteStringCollection completeCollection = new AutoCompleteStringCollection(); public AutoCompleteTextBox() { InitializeComponent(); } private void AutoCompleteTextBox_Load(object sender, EventArgs e) { CustomerRepository repo = […]

如何在Entity Framework中设置两个相同类型的导航属性

使用代码第一个EF4(使用CTP5),我可以添加单个导航属性以及外键,它将遵循命名并且只将一次外键添加到表中。 如果我然后再添加相同类型的第二个属性,它会将其分解为表格中的4列而不是两列。 示例代码: 使用此模型,我获得了一个名为PressTypeID的PressType的AdapterFrameCapability表中的单个属性。 public class AdapterFrameCapability { [Key] public int AdapterFrameCapabilityID { get; set; } [Required] public int PressTypeID { get; set; } public virtual PressType PressType { get; set; } } 这是我想要建模的设置,但它会导致在表中创建4列,分别用于FromPressTypeID,FromPressTypeFromPressTypeID,ToPressTypeID和ToPressTypePressTypeID。 理想情况下,我只是喜欢FromPressTypeID和ToPressTypeID的列。 我在这做错了什么? public class AdapterFrameCapability { [Key] public int AdapterFrameCapabilityID { get; set; } [Required] public int FromPressTypeID { get; set; […]

没有首先获得实体的EF4更新实体

如何更新实体而无需拨打电话进行选择。 如果我为实体提供密钥,那么在ObjectContext上调用SaveChanges()之后,它是否应该知道更新。 我目前这样做: var user = context.Users.Single(u => u.Id == 2); user.Username = “user.name”; user.Name = “ABC 123”; context.SaveChanges(); 这有效,但强制选择。 因为我知道Id ,为什么我不能这样做: var user = new User(); user.Id = 2; user.Username = “user.name”; user.Name = “ABC 123”; context.UpdateObject(user); context.SaveChanges(); 提前致谢。 编辑:此外,重要的是只更新受影响的属性。 这可能吗?

每个HttpContext只使用一个ObjectContext的C#Entity Framework

在ASP.NET MVC 2中,使用Entity Framework 4,我收到此错误“实体对象不能被IEntityChangeTracker的多个实例引用”。 对SO的搜索表明,可能是因为我有不同的Entity Framework ObjectContext实例,它应该只是每个HttpContext的一个ObjectContext实例。 我有这个代码(在我加入之前写的很久)似乎就是这样 – 每个HttpContext都有一个ObjectContext。 但我经常得到“IEntityChangeTracker”exception,因此它可能无法正常工作: // in ObjectContextManager.cs public const string ConnectionString = “name=MyAppEntities”; public const string ContainerName = “MyAppEntities”; public static ObjectContext GetObjectContext() { ObjectContext objectContext = GetCurrentObjectContext(); if (objectContext == null) // create and store the object context { objectContext = new ObjectContext(ConnectionString, ContainerName); objectContext.ContextOptions.LazyLoadingEnabled = […]

突然在SQL Azure上获得大量等待操作超时问题

两天前,没有代码更改或更改数据库,我没有得到很多(每5分钟左右)错误与The wait operation timed out错误有两个不同的下划线完整错误关于预登录和关于post的其他内容: System.Data.Entity.Core.EntityException:基础提供程序在Open上失败。 —> System.Data.SqlClient.SqlException:连接超时已过期。 尝试使用登录前握手确认时超时时间已过。 这可能是因为登录前握手失败或服务器无法及时响应。 尝试连接到此服务器所花费的时间是 – [Pre-Login] initialization = 21; 握手= 14988; —> System.ComponentModel.Win32Exception:等待操作超时 System.Data.Entity.Core.EntityException:基础提供程序在Open上失败。 —> System.Data.SqlClient.SqlException:连接超时已过期。 在登录后阶段过去了超时时间。 在等待服务器完成登录过程并响应时,连接可能已超时; 或者在尝试创建多个活动连接时可能会超时。 尝试连接到路由目标时发生此故障。 尝试连接到原始服务器时花费的持续时间是 – [Pre-Login] initialization = 5; 握手= 3098; [登录]初始化= 0; 认证= 0; [登录后]完成= 7; 尝试连接到此服务器所花费的时间是 – [Pre-Login] initialization = 20; 握手= 5; [登录]初始化= 0; 认证= 0; [登录后]完成= 11003; […]

entity framework:按月进行有效分组

我已经对此做了一些研究,到目前为止我发现的最好的是在整个数据集上使用Asenumerable,以便过滤发生在对象而不是数据库中。 我正在使用最新的EF。 我的工作(但很慢)代码是: var trendData = from d in ExpenseItemsViewableDirect.AsEnumerable() group d by new {Period = d.Er_Approved_Date.Year.ToString() + “-” + d.Er_Approved_Date.Month.ToString(“00”) } into g select new { Period = g.Key.Period, Total = g.Sum(x => x.Item_Amount), AveragePerTrans = Math.Round(g.Average(x => x.Item_Amount),2) }; 这给了我几个月的YYYY-MM格式,以及总金额和平均金额。 但是每次都需要几分钟。 我的另一个解决方法是在SQL中执行更新查询,因此我有一个YYYYMM字段可以进行本机分组。 更改数据库不是一个简单的解决方案,因此任何建议将不胜感激。 我找到上述代码构思的线程(http://stackoverflow.com/questions/1059737/group-by-weeks-in-linq-to-entities)提到’等到.NET 4.0’。 最近有什么介绍有助于这种情况吗?

JSON.NET DataContractJsonSerializer和Newtonsoft JSON序列化程序有什么区别

有人能帮我吗。 内置的JSON.NET DataContractJsonSerializer和Newtonsoft JSON序列化程序之间有什么区别? 我可以在Web API中使用其中一个是正确的,为什么我会选择一个?

entity framework连接字符串麻烦

我正在制作一个小型库(DLL)来管理用户及其角色/权限。 该计划是能够将此dll添加到MVC项目并能够操纵用户/角色/等。 所有数据都驻留在SQL数据库中。 我正在使用entity framework进行数据访问。 所以当我初始化一个新的RoleManager(这是我正在制作的lib中的主类的名称)时,我提供了一个connectionString,如下所示: RoleManager roleManager = new RoleManager(string connectionString); 然后在构造函数中我这样做: db = new RoleManagerEntities(connectionString); //This is the EntityFramework 我正在尝试提供此连接字符串(以及许多其他字符串) “metadata=res://*/RoleManager.csdl|res://*/RoleManager.ssdl|res://*/RoleManager.msl;provider=System.Data.SqlClient;provider connection string=’Data Source=localhost;Initial Catalog=Login;Integrated Security=True;Connection Timeout=60; multipleactiveresultsets=true'” 我收到以下错误: The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid. 这个问题是我试图从我的新项目中实例化EF而不提供连接字符串并且我的应用程序配置中没有任何内容的默认值。 […]