不確定是否有人可以幫助我在這種複雜的情況下,希望好。 我想知道繼承是最好的方法,也許是別的。我無言以對...如何保持父子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