实体FrameWork EntitySelf Mapping [英] Entity 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屋!