实体FrameWork EntitySelf Mapping [英] Entity FrameWork EntitySelf Mapping

查看:76
本文介绍了实体FrameWork EntitySelf Mapping的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

[表("sys_dept")]]
公共类部门{

$
  [Key]

   public string id {get; set;}



   public string parent_id {get; set;}



  公共字符串名称{get; set;}



   public int del_flag {get; set;}



  公共虚拟ICollection<部门> SubDepts {get; set;}

}
$


公共类MyContext:DbContext

{

&NBSP;&NBSP;&NBSP; public MyContext()

        :base(ConnectionString)

    {

        this.Configuration.LazyLoadingEnabled = false;

        this.Configuration.ProxyCreationEnabled = false;

    }


    public DbSet< Dept>部门{得到;组; }


    protected override void OnModelCreating(DbModelBuilder modelBuilder)

    {

        base.OnModelCreating(modelBuilder);

    }
}



$
 内部静态部门GetDeptById(字符串ID)

  {

    试试
     {

        使用(MyContext content = new MyContext())

         {

             VAR结果= content.Set<系>()

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ; .Where(T => T.id == id&& del_flag == 0)

           &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; //.Include(T => T.SubDepts)

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP; .FirstOrDefault();
$


            返回结果;

         }
     }
     catch(Exception ex)

     {

        抛出ex;

     }
 }



$
'字段列表'中的未知列'Extent1.Dept_id'


我在使用Entity Framework时应该有一些错误,所以我该怎么办?


最好的问候和非常感谢





  &NBSP; &NBSP;
解决方案

zjkida


根据您的描述,我创建了一个简单的演示,工作正常,根据你的模型,我通过实体框架迁移生成数据库表,如下所示。

 CREATE TABLE [dbo]。[sys_dept](
[ id] NVARCHAR(128)NOT NULL,
[parent_id] NVARCHAR(MAX)NULL,
[name] NVARCHAR(MAX)NULL,
[del_flag] INT NOT NULL,
[DEPT_ID] NVARCHAR(128)NULL,
约束[PK_dbo.sys_dept] PRIMARY KEY CLUSTERED([ID] ASC),
约束[FK_dbo.sys_dept_dbo.sys_dept_Dept_id]外键([DEPT_ID])参考文献[ dbo]。[sys_dept]([id])
);


GO
CREATE NONCLUSTERED INDEX [IX_Dept_id]
ON [dbo]。[sys_dept]([Dept_id] ASC);

#Usage

 class Program 
{
static void Main(string [] args)
{

var dept = MyContext.GetDeptById(" 1");

Console.WriteLine(" OK");

Console.ReadLine();

}
}

祝你好运,


章龙


[Table("sys_dept")]
public class Dept{

  [Key]
   public string id { get; set;}

   public string parent_id {get; set;}

   public string name {get; set;}

   public int del_flag {get; set;}

   public virtual ICollection<Dept> SubDepts {get; set;}
}

public class MyContext : DbContext
{
    public MyContext()
        : base(ConnectionString)
    {
        this.Configuration.LazyLoadingEnabled = false;
        this.Configuration.ProxyCreationEnabled = false;
    }

    public DbSet<Dept> Dept { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
    }
}


 internal static Dept GetDeptById(string id)
 {
     try
     {
         using (MyContext content = new MyContext())
         {
             var result = content.Set<Dept>()
                 .Where(T => T.id == id && del_flag == 0)
                 //.Include(T => T.SubDepts)
                 .FirstOrDefault();

             return result;
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }


Unknown column 'Extent1.Dept_id' in 'field list'

I should have some error in using Entity Framework, so how can i do?

best regards and thanks a lot

     

解决方案

Hi zjkida,

Based on your description, I create a simple demo, which works fine, according to your model, I generate database table via entity framework migration, which like below.

CREATE TABLE [dbo].[sys_dept] (
    [id]        NVARCHAR (128) NOT NULL,
    [parent_id] NVARCHAR (MAX) NULL,
    [name]      NVARCHAR (MAX) NULL,
    [del_flag]  INT            NOT NULL,
    [Dept_id]   NVARCHAR (128) NULL,
    CONSTRAINT [PK_dbo.sys_dept] PRIMARY KEY CLUSTERED ([id] ASC),
    CONSTRAINT [FK_dbo.sys_dept_dbo.sys_dept_Dept_id] FOREIGN KEY ([Dept_id]) REFERENCES [dbo].[sys_dept] ([id])
);


GO
CREATE NONCLUSTERED INDEX [IX_Dept_id]
    ON [dbo].[sys_dept]([Dept_id] ASC);

#Usage

class Program
    {
        static void Main(string[] args)
        {
           
                var dept = MyContext.GetDeptById("1");

                Console.WriteLine("OK");

                Console.ReadLine();
           
        }
    }

Best regards,

Zhanglong


这篇关于实体FrameWork EntitySelf Mapping的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆