不确定是否有人可以帮助我在这种复杂的情况下,希望好。 我想知道继承是最好的方法,也许是别的。我无言以对...如何保持父子C#与实体框架的关系
我应该如何设置类之间的关系?
在数据库:
我有一个叫tbl_contents
表有:
Int ContentId PK
Int ContentTypeId
Varchar ContentName
我有另一个表称为tbl_files
有:
Int FileId PK
Varchar Path
我已经FileId
作为外交关键到ContentId
,所以他们实际上分享PKs。
在C#代码:
public class Content
{
public enum ContentTypes
{
File = 1
}
protected tbl_contents _content;
public int ContentId
{
get
{
return _content.ContentId;
}
}
public string ContentName
{
get
{
return _content.ContentName;
}
}
public ContentTypes ContentType
{
get
{
return (ContentTypes)Enum.ToObject(typeof(ContentTypes), _content.ContentTypeId);
}
}
}
File类:
public class File
{
protected tbl_files _file;
public int FileId
{
get
{
return _file.FileId;
}
}
public string Path
{
get
{
return _file.Path;
}
}
}
编辑:
我有数据层实体:
tbl_contents, tbl_files
个两个业务层类:
Content, File
现在,为了解决内容类我只能选择一个LINQ查询,并得到tbl_contents实体。 例如:
tbl_contents _dbContent = _dbContext.tbl_contents.Find(5)
现在,我从ContentType的知道,这是一个文件,我想从文件实体的路径。我可以从_dbContent.tbl_files.Path
得到,但我希望它成为File类的一部分。从数据库获取实体后,我可以构建内容类: Content content = new Content(_dbContent);
我第一次使用数据库与EF添加FK属性。 DataLayer被映射为你所提到的,我只是想知道如果你正在使用DatabaseFirst,那么在业务层 – Bergkamp 2014-09-23 12:50:30
中做什么是最好的方法,那么将为你生成模型。没有必要自己写,我想...业务层是业务逻辑所需要的。不需要遵循域模型 – 2014-09-23 12:58:34
正确,但那只是持有实体的层。 如果我有一个业务层,我应该如何执行它? – Bergkamp 2014-09-23 12:59:29