Tag: entity framework

C#中的generics和inheritance

我有ER设计师生成的实体类,我修改了一下。 这是声明: public abstract partial class Preference : EntityObject, IPreference 然后有另一个实体类声明如下: public partial class BoolPref : Preference 所以BoolPrefinheritance自Preferences 。 现在我有了这个生成的属性: public ObjectSet<Preference> Preferences { get { if ((_Preferences == null)) { _Preferences = base.CreateObjectSet<Preference>(“Preferences”); } return _Preferences; } } private ObjectSet<Preference> _Preferences; 当我尝试将新的BoolPref添加到此ObjectSet时,如下所示 context.Preferences.AddObject(new BoolPref ()); 我得到编译时错误。 如何将BoolPref的实例添加到首选项? mystake在哪里?

entity framework6运行时错误:“字典中没有给定键”

我正在使用EF6代码优先和每个层次结构的表编写一个ASP.Net应用程序 每当我尝试使用dbcontext执行任何有意义的操作(例如查询,更新等)时,我都会收到此错误: { “Message”: “An error has occurred.”, “ExceptionMessage”: “An error occurred while preparing the command definition. See the inner exception for details.”, “ExceptionType”: “System.Data.Entity.Core.EntityCommandCompilationException”, “StackTrace”: ” at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition..ctor(DbProviderFactory storeProviderFactory, DbCommandTree commandTree, DbInterceptionContext interceptionContext, IDbDependencyResolver resolver, BridgeDataReaderFactory bridgeDataReaderFactory, ColumnMapFactory columnMapFactory)\r\n at System.Data.Entity.Core.EntityClient.Internal.EntityProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree, DbInterceptionContext interceptionContext)\r\n at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlanFactory.CreateCommandDefinition(ObjectContext context, DbQueryCommandTree tree)\r\n at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlanFactory.Prepare(ObjectContext context, […]

EntityFramework Code首先自引用一对一(1:1)关系映射 – 无法确定主要结束

我有这堂课: public class Message { public long Id { get; set; } public string Subject { get; set; } public string Message { get; set; } public virtual Message ParentMessage { get; set; } public virtual Message ChildMessage { get; set; } //… } 使用EntityFramework Code First Add-Migration为我提供了以下消息: Unable to determine the principal end of […]

LINQ to Entities无法识别方法’System.Collections.Generic.Dictionary`2 ToDictionary

我正在尝试从DB中检索EmployeeDTO列表,这些列表存储在Employee表中。 每个员工都可以拥有一个或多个专业。 专业存储在OrganizationSpecialtyType中。 Employee和OrganizationSpecialtyType通过EmployeeSpecialty表与“多对多”相关联。 我使用以下查询并获得标题中的exception: var q = _context.Employee.Where(p => employeeEMIIDs.Contains(p.EmployeeID)) .Select(p => new EmployeeDTO { EmployeeID = p.EmployeeID, GenderTypeID = p.GenderTypeID, FirstName = p.FirstName, LastName = p.LastName, Name = p.Name, MiddleName = p.MiddleName, DOB = p.DOB, Suffix = p.Suffix, Title = p.Title, Sepcialty = p.EmployeeSpecialty .ToDictionary(d => d.OrganizationSpecialtyType.SpecialtyTypeID, d => d.OrganizationSpecialtyType.Name) } ); 在EmployeeDTO类属性中,特性是类型公共字典。 […]

entity framework.net:“Name值应该是有效的导航属性名称。”

您好我正在使用ASP.Net开始一个项目,我正在关注微软的训练营。 我试图向我发布的api做一个REST请求,然后我得到了下一个例外: 类型为“PlataformaTest.Models.AnswerModel”的属性“QuestionId”上的ForeignKeyAttribute无效。 在依赖类型’PlataformaTest.Models.AnswerModel’上找不到导航属性’OptionModel’。 Name值应该是有效的导航属性名称。“,”exceptionType“:”System.InvalidOperationException“ 顺便说一下,我没有逐字逐句地遵循训练练习,我改变了一些名字,所以,试图找出从零开始的所有过程。 任何帮助和指导真的很感激。 谢谢。

entity framework – 在数据库中保存枚举的ICollection

我有一个类ICollection属性的类。 比如说我们有以下enumeration : public enum CustomerType { VIP, FrequentCustomer, BadCustomer } 我们还有以下课程: public class Customer { public int Id { get;set; } public string FirstName { get;set; } public string LastName { get;set; } public ICollection CustomerAtrributes { get;set; } } 如何将属性CustomerAtrributes存储在数据库中以便以后轻松检索? 例如,我正在寻找类似以下的东西: CustomerId | FirstName | LastName | CustomerType | 1 | Bob | […]

如何仅在Entity Framework 6.1中加载子对象的某些字段?

我正在研究一个有两个类的模型, Product和Transaction 。 public class Product { [DataMember] public Guid ProductId {get; set;} [DataMember] public virtual ICollection Transactions { get; set; } } public class Transaction { [DataMember] public Guid TransactionId {get; set;} [DataMember] public DateTimeOffset Date { get; set; } [DataMember] public String Customer { get; set; } } 如何进行检索产品及其交易日期的查询? 我尝试过类似的东西 var product = […]

代码首先在西里尔语中播种数据

我使用种子方法来填充数据库。 一些对象具有西里尔字母的属性。 例: context.Wines.AddOrUpdate(new Wine() { Id = 1, Name = “Шардоне”, etc…………………………………. 这些对象在数据库中正确创建,但是当我在MS SQL管理工作室中检查数据库而不是葡萄酒的名称为“Шардоне”时,它显示为“Øàðäîíå”。 奇怪的是,当我在Startup类中创建葡萄酒时,如下所示: var db = new WineSystemDbContext(); var ShardoneWine = new Wine { Name = “Шардоне}; db.Wines.Add(ShardoneWine); 一切都在数据库中以西里尔文显示。 你知道可能导致这种情况的原因吗?

EF6 codefirst中的唯一多列

我有一个类似于以下内容的电子邮件: public class Email { [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } public string Subject { get; set; } public string Body { get; set; } public string From { get; set; } public DateTime SentOn { get; set; } public List To { get; set; } } 为了确保唯一性,我在Subject , From和SentOn上创建了一个复合键 这造成了当Subject超过128个字符时validation失败的问题。 所以我只是在它上面放了一个[MaxLength]属性。 但现在它不能成为关键专栏 […]

如何使用Linq和C#在entity framework中获取多个结果集?

在我的存储过程中,我有两个基于两个结果集的select语句我想使用linq和c#代码获取详细信息。 以下是我的存储过程: Create Proc SP_GetResult As Begin Select Id,Name from EmployeeTable; Select ContactNo,DateOfBirth from Customer; End 我尝试下面的代码使用Linq调用存储过程: Public void SelectValues() { using (Entities1 entity = new Entities1()) { var list = entity.SP_GetResult foreach (var test in list) { var test12123 = test; } } } 我只能得到EmployeeTable的详细信息。 但是,我无法获得客户表详细信息。 怎么做 ? 任何的想法 ?