我正在尝试学习如何在MySQL中使用Entity Framework 6。 由于我已经有了一个现有的数据库,所以我遵循Model First方法。 但是,我总是面对这个有用的错误消息。 在Program.cs中的这行代码中触发错误: List students = dbContext.Students.ToList(); 错误消息只是说: System.Configuration.dll中发生未处理的“System.Configuration.ConfigurationErrorsException”类型的exception附加信息:无法识别的属性“name”。 我的第一个假设是我的App.config文件有问题。 但是,我不知道它正在讨论的App.config文件中的哪个name属性。 我试图寻找现有的答案或可能的解决方案无济于事所以我决定发布我的问题希望你们帮助我。 我在用什么: Visual Studio 2013(安装在我的电脑中) MySQL Server 5.6(安装在我的电脑上) entity framework6.1.1(通过NuGet包管理器安装在我的项目中) MySql.ConnectorNET.Data 6.8.3.2(通过NuGet包管理器安装在我的项目中) MySql.ConnectorNet.Entity 6.8.3.2(通过NuGet包管理器安装在我的项目中) 我做了什么步骤: 创建了一个新的控制台应用程序 通过NuGet包管理器将已安装的Entity Framework,MySql.ConnectorNET.Data和MySql.ConnectorNet.Entity导入到项目中 使用我现有的数据库添加了名为DSWS_Model的ADO.Net实体数据模型 输入一些简单的代码,迭代并将学生列表打印到控制台中 跑 然后出现了愚蠢的运行时错误 Program.cs中 namespace MySQLEntityFramework6 { class Program { static void Main(string[] args) { Console.WriteLine(“Start?”); Console.ReadLine(); try { using (dswsEntities […]
我想做什么 public void SomeTestMethod(){ var person = this.PersonManager.Get(new Guid(“someguid”)); person.Lastname = “Jameson”; this.PersonManager.Save(person); // This goes wrong } 哪里出错了 上面的save方法调用此代码: protected void Add(T source, MyEntities context, bool isNew) where T : class { if (isNew) { context.Set().Add(source); } else { var entry = context.Entry(source); if (entry.State == EntityState.Detached) { context.Set().Attach(source); entry.State = EntityState.Modified; } } […]
我正在关注MusicStore教程我已经在tutoria的第8部分了 。 当我尝试添加ShoppingCart类时,我遇到了这个错误..我试图谷歌找到一个可能的解决方案,但未能找到一个干净的T_T ..基于我的研究我得到这个错误因为我正在使用edmx这是数据库首先而不是代码首先在教程上。 我添加了这些代码,并在Add()和Remove()上出错 namespace Project.Models { public partial class ShoppingCart { ProjectEntities db = new ProjectEntities(); string ShoppingCartId { get; set; } public const string CartSessionKey = “cart_ID”; public static ShoppingCart GetCart(HttpContextBase context) { var cart = new ShoppingCart(); cart.ShoppingCartId = cart.GetCartId(context); return cart; } // Helper method to simplify shopping cart calls […]
我想要一个代码示例。 目前我在c#和asp.net 4 ef4中使用linq var querySlotOrder = from slot in context.CmsSlots where slot.SlotId == myCurrentSlotId select slot; if (querySlotOrder.SlotOrder == myNewSlotOrder) e.Cancel = true; 此linq查询仅返回记录。 使用VAR我无法获取Typed对象,我无法访问其属性SlotOrder。 如何更改查询? 谢谢你的帮助 有用的资源主题: http://msdn.microsoft.com/en-us/library/bb384065.aspx http://msdn.microsoft.com/en-us/library/bb397947.aspx http://msdn.microsoft.com/en-us/library/bb397678.aspx
我试图弄清楚如何使用Code First Entity Framework并保留某些表的快照历史记录。 这意味着对于我想要跟踪的每个表,我希望有一个后缀为_History的重复表。 每次我对跟踪的表行进行更改时,数据库中的数据都会在将新数据保存到原始表之前复制到历史表中,并且版本列会递增。 所以想象我有一个名为Record的表。 我有一排(ID:1,名称:一,版本:1)。 当我将其更改为(ID1:Name:Changed,Version:2)时,Record_History表获取一行(ID:1,Name:One,Version:1)。 我已经看到了很好的示例,并且知道有些库可以使用Entity Framework保留更改的审核日志,但我需要在SQL报告的每个修订版本中提供实体的完整快照。 在我的C#中,我有一个基类,我的所有“Tracked”表等效实体类都inheritance自: public abstract class TrackedEntity { [Column(TypeName = “varchar”)] [MaxLength(48)] [Required] public string ModifiedBy { get; set; } [Required] public DateTime Modified { get; set; } public int Version { get; set; } } 我的一个实体类的示例是: public sealed class Record : TrackedEntity { [Key] public […]
我需要知道EF的等效SQL Server数据类型。 我发现了两个类似的在线参考,但它们的定义似乎不一致。 如果我使用entity framework,我应该参考哪个参考? 1) ADO.NET中的数据类型映射 http://msdn.microsoft.com/en-us/library/cc716729%28v=vs.110%29.aspx 2) .NET Framework中的SQL Server数据类型 http://msdn.microsoft.com/en-us/library/ms131092.aspx
我有一个查询下表的Linq查询:具有一对多链接的任务:TaskLinks和TaskLinks具有指向实体的表的一对一链接。 我正在尝试选择任务,急切加载(通过.Include)TaskLinks并选择链接到TaskLink的实体。 但是我需要过滤Task(通过Access Level int)和TaskLinks,这样我就不会包含任何Inactive(bool)记录。 这是我的Linq查询: Tasks.Where(t => t.AccessLevel tl.TaskLinks.Where(tl2=> tl2.IfInactive == false) .Select(tls => tls.Entity)) 我在LinqPad中运行此查询,我收到以下错误,我不明白: ArgumentException:Include路径表达式必须引用在类型上定义的导航属性。 使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性。 参数名称:路径 如何重新编写此查询以便我可以过滤包含的任务链接,并选择实体? 先感谢您!! 短发
我有一个当前格式为的Select语句 dbEntity .GroupBy(x => x.date) .Select(groupedDate => new { Calculation1 = doCalculation1 ? x.Sum(groupedDate.Column1) : 0), Calculation2 = doCalculation2 ? x.Count(groupedDate) : 0) 在查询中,doCalculation1和doCalculation2是先前设置的bool。 这会在生成的Sql中创建一个case语句,如 DECLARE @p1 int = 1 DECLARE @p2 int = 0 DECLARE @p3 int = 1 DECLARE @p4 int = 0 SELECT (Case When @p1 = 1 THEN Sum(dbEntity.Column1) Else @p2 […]
我想在记录保存到磁盘时添加一个存储当前DateTime的列。 实现这一目标的最佳方法是什么? 我知道这不是一个非常复杂的问题,但我想知道是否有任何最佳实践或EF的任何function可以简化任务。 例如: 有没有办法在表Class中包含该字段的逻辑,以便它在保存到磁盘时自动更新? 修改或保存对象时是否有捕获事件?
我目前正在搜索搜索页面。 我只需要返回包含存储在int [] ST中的所有主题标签id的主题的themedetails列表。 目前该行(ST == null?true:ST.Contains(b.ThemeTagID))似乎给我一个错误 附加信息:无法创建类型为“System.Int32 []”的空常量值。 在此上下文中仅支持实体类型,枚举类型或基元类型。 public ActionResult Index(int ProviderID = 0, string Description = null, int[] ST = null) { var themedetail = from t in db.ThemeDetail from b in t.ThemeTags where ( (string.IsNullOrEmpty(Description) ? true : t.Description.ToLower().Contains(Description.ToLower())) && (ProviderID == 0 ? true : t.ProviderID == ProviderID) && (ST […]