C# C语言中的实体和N层体系结构#
我有三张表,如下所示C# C语言中的实体和N层体系结构#,c#,n-tier-architecture,C#,N Tier Architecture,我有三张表,如下所示 Emp ---- empID int empName deptID empDetails ----------- empDetailsID int empID int empDocuments -------------- docID empID docName docType using System; using System.Collections.Generic; using System.Linq; using System.Text; namespa
Emp
----
empID int
empName
deptID
empDetails
-----------
empDetailsID int
empID int
empDocuments
--------------
docID
empID
docName
docType
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace employee
{
class emp
{
private int empID;
private string empName;
private int deptID;
public int EmpID { get; set; }
public string EmpName { get; set; }
public int deptID { get; set; }
}
}
我正在创建一个实体类,以便使用n层体系结构在C#中执行数据库事务等。我开始为相同的对象创建类,如下所示
Emp
----
empID int
empName
deptID
empDetails
-----------
empDetailsID int
empID int
empDocuments
--------------
docID
empID
docName
docType
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace employee
{
class emp
{
private int empID;
private string empName;
private int deptID;
public int EmpID { get; set; }
public string EmpName { get; set; }
public int deptID { get; set; }
}
}
我的问题是,empID提供的emp详细信息和emp文件与emp相关。我的emp课上怎么会有这些呢
如果你能给我举个例子,我将不胜感激
谢谢你玩过Linq2SQL吗?您可以在那里找到答案。如果使用,您应该能够从Oracle数据源创建实体。这比你自己做要容易得多。我推荐你读三篇非常好的文章,帮助你走上正确的道路: 它们基于EF4解决方案,但我认为它们可能仍然非常相关,即使您不使用EF4或LINQ。特别是前两篇文章。写得很好
就您的具体问题而言,看起来您需要为empDetails和empDocuments创建一个实体类,然后在emp中保存empDetails类型的属性和empDocuments的集合(任意IEnumerable)。但当然,您可以使用某种预先构建的框架来帮助您。我认为可能存在EF Oracle实现。包含外键的表通常表示更大实体的详细信息
EmpDetails
和EmpDocuments
都代表了更大实体的不同细节级别Emp
由于每个Emp
实例可能有许多文档和许多详细信息,因此您的详细信息表应作为列表收集在Emp
类中
public class emp {
public int Id { get; set; }
public string Name { get; set; }
public int DepartmentId { get; set; }
public IList<empDetail> Details {
get {
return _details;
}
}
private IList<empDetail> _details;
public IList<empDocument> Documents {
get {
return _documents;
}
}
private IList<empDocument> _documents;
}
公共级电磁脉冲{
公共int Id{get;set;}
公共字符串名称{get;set;}
public int DepartmentId{get;set;}
公共IList详细信息{
得到{
返回详细信息;
}
}
私人IList_详细信息;
公共IList文件{
得到{
返回(u)文件;;
}
}
私人IList_文件;
}
使用,您可以不关心您的数据库关系模型,让这个工具通过XML映射文件从类图中使用SchemaExportTool
自动生成您的数据库关系模式()
有多个插件,如果我们可以这样称呼它们的话,比如
以下是一些有用的链接,可以帮助您了解它:
emp
实体类中的两个empDetail
和empDocument
集合时非常有用我可能会忘记其他一些…谢谢。我确实使用过LinQtoSQL,但我不能在这个项目中使用LinQ,因为有些奇怪的公司政策和数据库是oracle。还有其他处理数据库和实体的框架,如hibernate、subsonic、entity framework等。你可以读一些关于它们的文章,看看它们如何处理你的情况。毕竟,最终,您将找到一些解决方案,通过现有框架解决您的问题。