Tag: entity framework

多重约束违反了entity framework5

你好我有3个类Person,UserProfile(它inheritance了Person)和Results,一个Person可以有一个或多个结果,当我尝试将ia结果添加到一个人时ai得到标题中提到的错误,我的类是下面的。 任何帮助,将不胜感激。 [Table(“People”)] public class Person : IPerson { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Name { get { return FirstName + ” ” + LastName; } set{} } public string Email { get; set; } […]

C#linq包括before-after之后

在linq之间有区别: EFDbContext _db = new EFDbContext(); 1)_db.UserQuizes .Where(uq => uq.UserId == currentUserId && uq.QuizId == quizId) .Include(qz => qz.Quiz.VerbalQuizes.Select(q => q.Question)).First() 2)_db.UserQuizes .Include(qz => qz.Quiz.VerbalQuizes.Select(q => q.Question)) .Where(uq => uq.UserId == currentUserId && uq.QuizId == quizId).First() 3)_db.UserQuizes .Include(qz => qz.Quiz.VerbalQuizes.Select(q => q.Question)) First(uq => uq.UserId == currentUserId && uq.QuizId == quizId) 请注意,第一个查询使用包括在where之前和之后的where,但结果是相同的。 另外如何查看实际的sql查询? 在这个特殊情况下,性能是我的主要目标,我可以改进查询吗? 我需要更改两个属性:UserQuizes属性和UserQuizes-> […]

Linq to Entity比较字符串忽略空格

当使用linq实体进行字符串比较时,将忽略空格。 在我的表中,我有一个nchar(10)列,因此如果不是10个字符,任何数据都将用空格填充其余数据。 下面我将“ncharTextColumn”与”Four”字符串进行比较。 甚至认为ncharText将等于”Four “它导致匹配,“结果”变量将包含1条记录 TestEntities1 entity = new TestEntities1(); var result = entity.Table_1.Where(e => e.ncharText == “Four”); 有没有解释这个和解决它的方法或我将不得不在任何comaprisons之前调用我的查询ToList。 var newList = result.ToList().Where(e => e.ncharText == “Four”); 此代码现在正确地返回0记录,因为它考虑了空格。 但是,在比较之前调用list可能会导致将大型集合加载到内存中,而这些内存最终不会被使用。

从C#中的Entity Framework生成的类派生

我创建了一个实体数据模型并从中生成了一个数据库。 其中一个实体称为Template 。 创建部分类以扩展Template的function可以正常工作。 如果我创建一个新类并尝试从Template派生,我会在实例化时遇到运行时exception: Mapping and metadata information could not be found for EntityType ‘Template001’ 。 我该如何解决这个问题? 我肯定需要inheritanceEF类。 编辑 似乎不可能。 如果是这种情况,那么实现以下要求的最佳方法是:模板实体存储有关每个都有自己的代码要执行的模板的信息。 这就是为什么我试图从实体派生出来的原因。

如何加载IEnumerable 类型的相关实体

我正在尝试加载SingleOrDefault实体的相关实体,但是我收到以下exception: IEnumerable类型的导航属性不是ICollection类型的单个实现 我已经尝试过这几种方法,并最终针对上下文针对每个查询获得相同的错误(我在评论中包含了其他方式)。 using(var context = CustomObjectContextCreator.Create()) { return context.Job.Include(“Surveys”).Include(“SiteInfoes”) .Where(r => r.Jobid == jobId).SingleOrDefault(); //context.ContextOptions.LazyLoadingEnabled = false; //var Job = context.Job.Where(r => r.Jobid == jobId).SingleOrDefault(); //context.LoadProperty(Job, “Surveys”); //context.LoadProperty(Job, “SiteInfoes”); //var Job = (from j in context.Job // .Include(“Surveys”) // .Include(“SiteInfoes”) // select j).SingleOrDefault(); //var Job = context.Job.Where(r => r.Jobid == jobId).SingleOrDefault(); //var surveys = […]

entity framework的通用插入或更新

假设我有一个插入方法: public T Add(T t) { context.Set().Add(t); context.SaveChanges(); return t; } 一般的更新: public T Update(T updated,int key) { if (updated == null) return null; T existing = _context.Set().Find(key); if (existing != null) { context.Entry(existing).CurrentValues.SetValues(updated); context.SaveChanges(); } return existing; } 我想将它们组合成一个接受任何实体方法的SaveOrUpdate : 我如何才能最好地实现这一目标,并且有一种更有效的方法可以避免往返数据库,而不是使用context.Set().Find(key)

将List 转换为EntityFramework列/字段列表

使用EntityFramework,我可以使用以下语法获取特定类型的实体列表: List customers = ((IQueryable)myEntities.Customers .Where(c => c.Surname == strSurname) .OrderBy(c => c.Surname)).ToList(); 然后,我可以做这样的事情,最终得到我感兴趣的数据: var customerSummaries = from s in customers select new { s.Surname, s.FirstName, s.Address.Postcode }; 我给出了包含所请求的汇总数据的字段(和必要的表)的string s(基于用户选择)的列表。 例如,对于上面的’customerSummary’,提供的string列表将是:“Surname”,“FirstName”,“Address.Postcode”。 我的问题是:如何将该字符串列表转换为仅提取指定字段所需的语法? 如果无法做到这一点,那么列的列表将是一个更好的类型(比字符串),这样我就可以提取正确的信息? 我想我需要知道EF [entity | table]的[member | column | field]的类型,如果这是有道理的。 编辑: 我尝试了建议的答案 – 动态linq – 使用以下语法 string parmList = “Surname, Firstname, Address.Postcode”; var customers […]

entity framework不更新外键对象

我是Entity Framework的新手,这种行为让我很困惑: [Table(“ClinicProfile”)] public class ClinicProfile { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int Id { get; set; } [ForeignKey(“ContactData”)] public int ContactDataId { get; set; } public ContactData ContactData { get; set; } } [Table(“ContactData”)] public class ContactData { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } … } 插入新实体时一切正常 – ContactData保存到表中并分配外键: clinicProfile.ContactData = contactData; SharedContext.Current.Entry(clinicProfile).State […]

将Entity Framework用作DataGridView的数据源的正确方法是什么?

我尝试通过DataGridView Designer设置DataSource但它没有在那里列出然后我通过生成DataSet的向导生成了新的数据源。 但是现在我的项目+ DataSet中有Entity Framework我怎么才能使用Entity Framework …我很困惑请帮忙 artiklBindingSource是自动生成的我只想使用EF作为数据源我现在卡在了不需要的DataSet和一大堆乱七八糟的东西。

entity framework中多个类似实体类型的通用查询

我有一个场景,我在数据库中有3种类型的产品,所有产品都有自己独立的表(例如Product1 , Product2和Product3 )。 几乎所有产品表都具有相同的模式。 我需要在不同的表中获得不同类型的产品。 我目前有3种获取产品的方法,每种产品类型一种: public List GetProduct1Data() { //…. context.Product1.Where(..).Tolist(); } public List GetProduct2Data() { //…. context.Product2.Where(..).Tolist(); } public List GetProduct3Data() { //…. context.Product3.Where(..).Tolist(); } 在调用产品时,我有一个WebApi方法,它接受产品类型并调用相应的方法: public IHttpActionResult GetProducts(ProductType product) { ///…. // Ii have to call repositories according to product parameter } Entity Framework是否有任何方法可以选择只有一种方法的表?