Tag: entity framework

在entity framework中,如何在没有枚举所有可能的DbSet的switch语句的情况下将通用实体添加到其对应的DbSet?

我有两种类型的实体:员工实体和办公室实体,两者之间有一对多关系,因此一个办公室有很多员工。 对于EF,在每个实体的上下文文件中创建一个DbSet: public DbSet Offices { get; set; } public DbSet Employees { get; set; } 我做过的EF教程让我为特定实体做了我的CRUD方法。 例如,下面的方法创建一个办公室并将其添加到办公室DbSet(忽略MVC的东西 – 我不再这样做了): public ActionResult Create([Bind(Include = “Address,BusinessName”)] Office office) { try { if (ModelState.IsValid) { db.Offices.Add(office); db.SaveChanges(); return RedirectToAction(“Index”); } } catch (DataException /* dex */) { //Log the error (uncomment dex variable name and add a […]

如何使用C#将数据属性添加到下拉菜单

我有一个标准的下拉列表,并能够数据绑定到列表。 Select Make 我想在下面的选项中添加一个数据属性: <asp:ListItem data-siteid="”>Select Make 我显然收到错误,因为它无法识别data-siteid。 该列表是数据绑定的。 任何提示都会很方便

EntitySet System.InvalidOperationException – “实体类型不是当前上下文模型的一部分”

类似的问题 实体类型不是当前上下文的模型的一部分 – 并且 – EF 4.1 Code First错误 – 实体类型SomeType不是当前上下文的模型的一部分是类似的问题,但它们是“代码优先”透视图只有更简单的数据模型,并解决连接字符串和映射问题。 请仔细看看这个。 症状 // HomeController.cs public ActionResult Index() { var _db = new MealsContext(); var m = _db.Meals.ToList(); var d = _db.Drinks.ToList(); return View(); } 检索Drinks集合时会抛出exception: The entity type Drink is not part of the model for the current context. 码 // Meal.cs public class […]

如何使用EF执行带输入和输出参数的存储过程?

我使用EF代码第一种方法,我使用迁移创建了存储过程,如下所示: public override void Up() { Sql(@”CREATE TYPE IdsList AS TABLE ( Id Int ) GO Create Procedure getChildIds( @IdsList dbo.IdsList ReadOnly ) As Begin WITH RecursiveCTE AS ( SELECT Id FROM dbo.PhysicalObjects WHERE ParentId in (Select * from @IdsList) –Where Id=108 UNION ALL SELECT t.Id FROM dbo.PhysicalObjects t INNER JOIN RecursiveCTE cte ON t.ParentId […]

EntityFunctions.TruncateTime和DbFunctions.TruncateTime方法有什么区别?

有什么区别: EntityFunctions.TruncateTime 和 DbFunctions.TruncateTime methods?

级联删除不与EF级联

我有一个简单的sqlite数据库,有两个表。 当我手动删除(使用SQLite Expert)表DataSets中的条目时,OneD中的相应条目将按预期删除。 当我从Entity Framework中删除DataSet中的条目时,它不会导致删除One D中的coreponsing条目。 没有生成错误。 知道为什么吗? 问候 这是数据库定义: CREATE TABLE [DataSets] ( [DataSetId] INTEGER NOT NULL ON CONFLICT FAIL PRIMARY KEY AUTOINCREMENT, [Description] TEXT(128)); CREATE TABLE [OneD] ( [OneDId] INTEGER NOT NULL ON CONFLICT FAIL PRIMARY KEY ON CONFLICT ABORT AUTOINCREMENT, [DataSetId] INTEGER NOT NULL ON CONFLICT FAIL UNIQUE ON CONFLICT ABORT REFERENCES […]

无法找到我的EF代码第一个数据库

我在做微软的MVC入门教程: entity framework6入门代码首先使用MVC 5。 这包括创建代码优先数据库。 一切正常,但我无法找到我的数据库。 这是我的ConnectionString : 如果我调试我的索引方法连接如下: Data Source=.\SQLEXPRESS; Integrated Security=True 但是我的SQLEXPRESS实例中没有数据库,我已经使用SQL Server Management Studio进行了检查。 如果我在文件系统中搜索*.mdf我也找不到任何东西。 我项目中的App_Data为空… 但是所有CRUD操作都运行良好,必须有一些东西。 我可以看到该表的唯一方法是通过Visual Studio Server Explorer连接到.\SQLEXPRESS 。 但这位于何处? 如果我通过SQL Server Management Studio连接到.\SQLEXPRESS ,为什么我看不到该表? 任何的想法?

“LINQ不支持指定的类型成员’Date’”

_dbEntities.EmployeeAttendances.Where(x => x.DailyDate.Date.Equals(DateTime.Now.Date)).ToList(); “LINQ to Entities不支持指定的类型成员’Date’。仅支持初始值设定项,实体成员和实体导航属性。” 如何根据linq查询中的当前日期获取员工数据?

针对entity framework的精巧表现

我是新手使用ORM处理数据库,目前我正在制作一个新项目,我必须决定是否使用Entity Framework或Dapper。 我读了许多文章说Dapper比entity framework更快因此我使用Dapper创建了两个简单的原型项目,另一个使用Entity Framework和一个函数从一个表中获取所有行。 表格架构如下图所示 以及两个项目的代码如下 对于Dapper项目 System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); IEnumerable emplist = cn.Query(@”Select * From Employees”); sw.Stop(); MessageBox.Show(sw.ElapsedMilliseconds.ToString()); entity framework项目 System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); IEnumerable emplist = hrctx.Employees.ToList(); sw.Stop(); MessageBox.Show(sw.ElapsedMilliseconds.ToString()); 经过多次尝试上面的代码只有我第一次运行项目时,dapper代码会更快,在这第一次总是我从entity framework项目得到更好的结果我也尝试了以下关于entity framework项目的声明来阻止懒惰装载 hrctx.Configuration.LazyLoadingEnabled = false; 但是,除了第一次以外,EF的表现仍然相同。 虽然网上的所有文章都相反,但是任何人都可以给出关于EF在这个样本中更快的原因的解释或指导 更新 我已经改变了实体样本中的代码行 IEnumerable emplist = hrctx.Employees.AsNoTracking().ToList(); 使用某些文章中提到的AsNoTracking会停止entity framework缓存,停止缓存之后, 精巧的样本表现更好,(但不是很大的区别)

entity frameworkDbContext SaveChanges()OriginalValue不正确

我试图通过覆盖SaveChanges()方法使用EF 4.1实现AuditLog,如下面所述: http://jmdority.wordpress.com/2011/07/20/using-entity-framework-4-1-dbcontext-change-tracking-for-audit-logging/ entity framework4.1 DbContext覆盖SaveChanges以审核属性更改 我遇到了“修改过”的条目问题。 每当我尝试获取相关属性的OriginalValue时,它总是具有与CurrentValue字段中相同的值。 我首先使用此代码,并成功识别修改的条目: public int SaveChanges(string userID) { // Have tried both with and without the following line, and received same results: // ChangeTracker.DetectChanges(); foreach ( var ent in this.ChangeTracker .Entries() .Where(p => p.State == System.Data.EntityState.Added p.State == System.Data.EntityState.Deleted p.State == System.Data.EntityState.Modified)) { // For each change record, get […]