Tag: entity framework

Int 。包含在EF6中不起作用

我有一个奇怪的问题,基本上我有这个代码: var langauges = (from l in context.languages where Model.LanguageIDs.Contains(l.LanguageID) select l) .ToList(); 我不知道为什么,但我总是得到一个错误: System.NullReferenceException:未将对象引用设置为对象的实例 事情是它以前工作,但之后我将我的所有应用程序升级到MVC5和EF6,它开始崩溃这个代码。 虽然如果我检查Model.Langauges ,它有几个ID,所以没关系。 我也在高高的背景下循环。语言和所有人都有id。 我也是这样写的: var langauges = (from l in context.languages where 1==l.LanguageID select l) .ToList(); 这也工作,所以我真的不明白,我做错了什么? 任何人都可以详细说明……? 堆栈跟踪: at MySql.Data.Entity.SqlGenerator.Visit(DbPropertyExpression expression) at MySql.Data.Entity.SqlGenerator.Visit(DbInExpression expression) at System.Data.Entity.Core.Common.CommandTrees.DbInExpression.Accept[TResultType](DbExpressionVisitor`1 visitor) at MySql.Data.Entity.SqlGenerator.VisitBinaryExpression(DbExpression left, DbExpression right, String op) at MySql.Data.Entity.SqlGenerator.Visit(DbAndExpression expression) at […]

如何在Entity Framework中设置默认值

我的数据库中有一个包含52列的表,我想编写一个函数来在该表中创建一行。 就我而言,我不想使用该表中的所有列,所以我创建了这样的模型。 [Table(“CUST_MASTER”)] public class CustomerMaster { [Key] [Column(“CUSTOMER_ID”)] public string Id { get; set; } [Column(“CUSTOMER_NAME”)] public string Name { get; set; } [Column(“CUSTOMER_CITY”)] public string City { get; set; } } 有没有办法只通过entity framework发送这些数据,并将所有其他不可空字段设置为某些默认数据(对于字符串“”,对于小数0.0等),而无需在模型中写入所有字段并手动执行?

VS 2012中缺少实体数据模型

添加新项目时,在“数据”选项卡下找不到实体数据模型。 我已经查看了几个问题和答案,有关这方面的信息,但没有一个解决方案有效。 我已经修复,卸载并重新安装,手动安装了EF Tools软件包并尝试卸载所有与VS相关的程序。 我也尝试在不同的.NET框架下创建几个新项目,类库,Web项目,但它不存在。 主项目:Visual Studio 2012,类库项目.NET 4.0

具有entity framework6的多对多通用更新方法

我在抽象的DatabaseOperations类中有一个用于Entity Framework的通用Update方法: public virtual void Update(T updatedObject, int key) { if (updatedObject == null) { return; } using (var databaseContext = new U()) { databaseContext.Database.Log = Console.Write; T foundEntity = databaseContext.Set().Find(key); databaseContext.Entry(foundEntity).CurrentValues.SetValues(updatedObject); databaseContext.SaveChanges(); } } 但是,这不能处理多对多关系。 通过覆盖TrussSetDatabaseOperations : DatabaseOperations的Update方法可以克服这种多对多更新问题TrussSetDatabaseOperations : DatabaseOperations ,如下所示: public override void Update(TrussSet updatedTrussSet, int key) { if (updatedTrussSet == null) { […]

如何将自引用表绑定到WPF TreeView

从edmx绑定自引用表的最佳解决方案是什么: 到WPF TreeView控件有类似的东西:

自定义字符串作为具有entity framework的主键

我正在尝试使用Code First Entity Framework将个性化字符串设置为主键。 我有一个帮助函数返回一个n-chars随机字符串,我想用它来定义我的Id,就像YouTubevideo代码一样。 using System.Security.Cryptography; namespace Networks.Helpers { public static string GenerateRandomString(int length = 12) { // return a random string } } 我不想使用自动递增的整数(我不希望用户使用机器人太容易访问每个项目)或Guid(太长时间无法向用户显示)。 using Networks.Helpers; using System; using System.ComponentModel.DataAnnotations; namespace Networks.Models { public class Student { [Key] // key should look like 3asvYyRGp63F public string Id { get; set; } public string […]

尝试从存储过程读取多列实体结果集时出现问题

我们使用EF5.0和代码优先的方法与MS SQL Server我读了一篇文章http://msdn.microsoft.com/en-us/data/jj691402.aspx 并决定在我们的数据库上尝试相同的方法 但是,假设我的商店程序包含这样的查询 SELECT * from [dbo].[MyEntities] as MyEntity where ID = @ID 和C#中的代码是 var entities = Context.ObjectContext.Translate(reader, “MyEntity”, MergeOption.AppendOnly); 我正在这一点上 System.Data.Entity.dll中出现“System.InvalidOperationException”类型的exception,但未在用户代码中处理 其他信息:找不到EntitySet名称“MyDbContext.MyEntity”。 因此,显然它会添加一些上下文名称作为EntitySet名称的前缀,而不是MyEntity在结果集中查找MyDbContext.MyEntity。 导致此行为的原因以及是否存在任何workaroud(因为在上面引用的示例中,它看起来相当简单且不需要特定的操作,除了调用db.Database.Initialize(force:false);(我在我的代码中执行以及)

为什么我的EF分离不够?

我尝试分离类型group的实体。 实际上我将它保存在我的缓存中,并在响应客户端之前将其分离一会儿。 在下一个请求中,我从缓存中获取group并重新附加一个新的objectContext。 但是我得到An entity object cannot be referenced by multiple instances of IEntityChangeTracker 我知道附加包括所有相关实体但分离没有。 在那里,我必须分离每个相关的实体。 在我的分离中我错过了什么? 这是我的实体hirarchy: public partial class App { public App() { this.Pairs = new HashSet(); } public string AppName { get; set; } public System.Guid AppGuid { get; set; } public string ClientAppID { get; set; } public bool IsDeleted […]

我可以避免使用SQL_VARIANT查询entity framework吗?

我首先使用实体​​框架6代码,我有一个简单的模型: public class Task { [Key] public int aid {get;set;} [MaxLength(256)] public string Memo {get;set;} } 我得到一个模型: int id = 3; from t in db.Tasks where t.aid == id select t; 要么 int id = 3; db.Tasks.Find(id); 肯定是快但不…… 我查看由EF ORM生成的IntelliTrace中的SQL,如下所示: DECLARE @p__linq__0 AS SQL_VARIANT; SET @p__linq__0 = 3; SET STATISTICS TIME ON SET STATISTICS IO […]

成员“在LINQ to Entities中不受支持”

所以我是C#,LINQ和MVC的新手。 我试图得到一个年龄列表,但它说 LINQ to Entities不支持指定的类型成员’Age’。 仅支持初始化程序,实体成员和实体导航属性。 对于之前的教程,他们使用这个完全相同的逻辑,除了他们检查字符串,而不是int(年龄)。 为什么这会让我感到健康,我该如何解决? public ActionResult SearchIndex(string ageValue, string searchString) { if (!string.IsNullOrEmpty(ageValue)) { var AgeList = new List(); var AgeListQry = from d in db.Actors orderby d.Age select d.Age.ToString(); AgeList.AddRange(AgeListQry.Distinct()); } // other stuff } 我想知道发生了什么,以便将来可以避免这种情况! 实体模型代码 public class Actor { public int ID { get; set; } public string […]