Entityframework 6:如何将自定义类型映射到 SQL 表

Entityframework 6 : How to map custom types to SQL tables

我搜索了关于这个主题的话题,但 none 个回答了我的问题。

这是我的问题:

我正在使用 EF 6 Base-first。我需要用 SQL table 映射我自己创建的自定义实体。 假设我有一个这样的 SQL table 客户:

CREATE TABLE CLIENT(
id int primary key,
info1 varchar,
info2 varchar,
info3 varchar,
info4 varchar,
info5 varchar);

和一个 C# class 客户端

public class Client{
 private int id {get; set;}
 private string info2 {get; set;}
 private string info5 {get; set;}
}

我希望能够在 DbContext 中操作此客户端 class,就像我操作自动生成的 EDMX class 一样。通过这样做,我只会操纵我的应用程序需要的字段。 我的目标是能够像那样使用它

using(var ctxt = new CustomDbContext())
{
     ctxt.Entry(client).State = client.id == 0? EntityState.Added : EntityState.Modified;

    context.SaveChanges();
}

这样我就可以 insert/update 进入我的客户端 table,而不会破坏我不使用的 info1、info3 和 info4 中的数据。

提前致谢

如果我理解得很好,那么我会使用 DbEntityEntry。 我希望此资源能帮助您了解它的实际工作原理。

http://kerryritter.com/updating-or-replacing-entities-in-entity-framework-6/

玩得开心

所以我认为你应该创建一些继承自 DbContext 的 class 来设置你的上下文,然后你将在 class 上创建一个虚拟 属性喜欢 DbSet<T> MyProperty {get;set;}

所以可能是这样的:

public class YourEntity : DbContext
{
    //Configuration stuff for your entity
    ...

    public virtual DbSet<Client> Clients {get;set;}
}