Tag: entity framework

从KeyMembers中获取身份字段

我KeyMembers我在KeyMembers中设置的KeyGembers StoreGeneratedPattern到Identity有没有办法做到这一点? 我可以使用以下代码获取KeyMembers: private static IEnumerable GetKeyMembers(string entityName) { var objectContext = EntityModel.ObjectContext; var metaData = objectContext .MetadataWorkspace .GetEntityContainer(objectContext.DefaultContainerName, DataSpace.CSpace) .BaseEntitySets .FirstOrDefault(x => x.ElementType.Name == entityName); return metaData.ElementType.KeyMembers; } 我有这个问题,它也返回外键,但我只想让PrimaryKeys具有自动递增值。

entity framework代码First和Firebird – 外键名称问题

我正在尝试使用EF代码优先创建包含2个表( Districts和Databases )的新数据库,这个简单的代码: using (var db = new FirebirdDBContext(_connectionString)) { db.Database.CreateIfNotExists(); } 我的课程: public class District { [Key] public int District_id { get; set; } [Column(TypeName = “VARCHAR”)] [StringLength(50)] public string District_name { get; set; } [ForeignKey(“DataBase”)] public int DataBase_id { get; set; } public DataBase DataBase { get; set; } } public class DataBase […]

entity framework,获取数据库第一案例列表

我在大多数应用程序中使用Entity框架,但它们都是代码优先的。 现在我正在处理一个预先存在的数据库。 我能够通过DbContext查找,更新和添加记录。 public class CompanyService { public void AddCompany(Company cpn) { CompanyModel cm = new CompanyModel(); cm.Companies.Add(cpn); cm.SaveChanges(); } public void EditCompany(Company cpn) { CompanyModel cm = new CompanyModel(); company existing = cm.Companies.Find(cpn.id); cm.Entry(existing).CurrentValues.SetValues(cpn); cm.SaveChanges(); } public List List() { CompanyModel cm = new CompanyModel(); } } CompanyModel是一个类,如CompanyModel : DbContext ,我的不好。 但是CompanyModel非常有限,它没有Where方法。 我怎样才能得到Company名单。

如何使用EF6 Code First将Foreign Key属性公开给具有导航属性的现有实体

我有一个已经与底层数据库一起使用的实体,它只使用导航属性创建一个可选实体(1:0..1)。 因此,默认约定,EF根据该约定在DB中创建了一个可为空的外键列,并为其指定了带有下划线的“MyProp_Id”名称。 现在,我希望将该外键作为实体的属性公开,因为它会使某些场景更容易。 我不想重命名/更改DB中的基础外键列(MyProp_Id)。 实际上,不应该有任何底层数据库更新,我只是想在实体上公开FK。 一个代码示例澄清: public class MyEntityA { public long Id { get; set; } //public long? MyOptionalEntityB_Id { get; set; } <== this is what I am trying to add //public long? MyOptionalEntityBId { get; set; } <== this didn't work either public MyEntityB MyOptionalEntityB { get; set; } } 我只是尝试在实体上添加“MyOptionalEntity_Id”属性作为属性,希望EF“自动”看到它,因为名称相同,它只是映射并且快乐。 没有骰子。 […]

如何扩展Entity Framework 6.1.3生成的类?

是否可以扩展Entity Framework 6.1.3生成的类? 我有一个现有的数据库,我已经创建了一个ADO.NET实体数据模型,反过来Visual Studio 2015生成了一组类。 public partial class WebApplication1Entities : DbContext { public WebApplication1Entities() : base(“name=WebApplication1Entities”) { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { throw new UnintentionalCodeFirstException(); } } 我可以手动覆盖WebApplication1Entities以允许动态运行时连接,如下所示: public WebApplication1Entities(string connectionString) : base(connectionString) { } 但是,这涉及编辑Visual Studio 2015生成的类,但是我希望将来更新ADO.NET实体数据模型,Visual Studio将覆盖我对上一个生成的类所做的任何手动更改,而我是回到原点,必须手动编辑生成的类。 是否可以创建一个辅助类或类似的东西来扩展现有的WebApplication1Entities : DbContext ,并允许添加新的重载方法,并inheritanceVisual Studio 2015生成的类的现有方法,如虚拟DbSets。 任何帮助将非常感激 :-)

在LINQ Query中将字符串转换为datetime并检查今天的日期

在表中,DueDate数据类型是varchar。 现在我想查看今天的截止日期 var query = (from o in db.Order_Reports where Convert.ToDateTime(o.ReportDueDateTime) >= DateTime.Now select o); 错误 LINQ to Entities无法识别方法’System.DateTime ToDateTime(System.String)’方法,并且此方法无法转换为商店表达式。 我想如何将字符串转换为日期和时间并检查今天的日期

entity framework(数据库优先)具有不正确的存储过程返回结果

环境: Visual Studio 2017 SQL Server 2016 EF v6采用数据库优先方法 背景:存储过程在EDMX中。 如果没有发生,我的存储过程将返回值设置为0,如果受影响,则设置为1,如果出现错误,则设置@@ ERROR的值。 背景1:我的存储过程LTM_Lease_DeleteSubFiles在顶部执行SET NOCOUNT ON ,并在存储过程结束时使用RETURN命令设置返回值。 问题1:我的调用返回-1,甚至在存储过程中都没有: var spResults = context.LTM_Lease_DeleteSubFiles(…) 背景2:我的存储过程DOIOwnerChanges_Apply在存储过程结束时使用RETURN命令设置返回值。 问题2 :我的调用返回的值8,甚至在存储过程中找不到: var spResults = context.DOIOwnerChanges_Apply(…)

使用预先加载的存储库通用方法GetById

我正在使用Entity Framework,并希望在Repository类中使用eager loading创建通用的GetById方法: 这是我使用延迟加载的方法: public virtual TEntity GetById(object id) { return DbSet.Find(id); } 我知道方法Find不支持预先加载,但是如何修改此方法以使用预先加载,以便我使用此方法如下(例如): _unitOfWork.MyRepository.GetById(includeProperties: “Users”);

EF Model First的1:1关系问题

我正在尝试使用EF开发一个Model-First的应用程序。 我尝试了一切来完成一个表格分割模式和一个1:1的关系,但看起来EF只是不让我。 假设我确实使用Model-First – 是否有一种方法可以放置1:1的关系,而不会弄乱生成的文件,EF会让人烦恼: 在“Blabalbala”关系中,“Blablalah”角色中的多重性无效。 由于Dependent Role属性不是关键属性,因此Dependent Role的多重性的上限必须为*。 我已经尝试将FK设置为​​目标表上的主键,但仍然没有帮助。

如何向我未存储在数据库中的Web API响应中添加属性?

我正在使用Entity Framework 6.0构建C#Web API。 我有最简单的用户类,有3个属性,我坚持将SQL存入用户表,其中有3个相应的列,其中UserID是其主键。 public partial class User { public string UserID {get; set;} public string FirstName {get; set;} public string LastName {get; set;} } 我想在Web API中添加两个仅用于输出的属性,我不想在我的数据库中存储这些属性。 我使用这些属性与消费客户端“状态”和“消息”信息进行通信,这些信息不属于用户类。 状态=确定|错误|警告。 消息将是Web API需要与调用客户端通信的任何消息。 我的问题是:在发送回Web API的响应而不修改SQL上的基础用户表时,动态添加这两个属性的最简单方法是什么? 我知道我可以将这两个作为虚拟列添加到用户表中。 当我不需要它时,我不想在SQL端带来那些开销。