C# 通过类和构造函数访问自定义组织的数据
努力实现基本任务的解决方案: 为网站应用程序使用多个C# 通过类和构造函数访问自定义组织的数据,c#,database,sql-server-2008,asp.net-4.0,C#,Database,Sql Server 2008,Asp.net 4.0,努力实现基本任务的解决方案: 为网站应用程序使用多个Sql数据表作为源… 这就是我再次来到这里的原因。。。寻求有经验的C#net开发人员帮助 我只是想为正确的实现添加一些基本逻辑,比如使用 专用名称空间和类,用于保存所有数据库表的引用 (在我尝试工作/学习实体框架方法之前。) 我想自己尝试实现EF的basic功能,那样的话。。。我还将学习如何正确使用课堂 到目前为止。。。结构化的:用我的一点知识 “助手”名称空间,表示公司名称为:HT technologies 因此,我将名称空间命名为HT\u
Sql数据表作为源…
这就是我再次来到这里的原因。。。寻求有经验的C#net
开发人员帮助
我只是想为正确的实现添加一些基本逻辑,比如使用
专用名称空间和类,用于保存所有数据库表的引用
(在我尝试工作/学习实体框架
方法之前。)
我想自己尝试实现EF
的basic功能,那样的话。。。我还将学习如何正确使用课堂
到目前为止。。。结构化的:用我的一点知识
“助手”<代码>名称空间
,表示公司名称为:HT technologies
因此,我将名称空间命名为HT\u DbSchema
…它包含:
- 表名称
公共密封类HTDB\u表
{
public const string Customers=“Customers”;
public const string Times=“Times”;
}
- 表IDs
公共密封等级HT\u tblIDs
{
public const int tblCustomersID=1,tblTimesID=2;
}
- 表列列出了…(仅一个示例)
公共类HTDB\u Cols
{
公共类TBL客户
{
public const string CustId=“CustId”,
CustName=“CustName”,
手机=“手机”…等
}
}
由于这三门课都是为所有项目服务的
对于当前项目的每个表,constructor
还有另一个助手类
公共类DBMetaDetails
{
公共结构数据库表
{
公共字符串表名{get;set;}
public int TableID{get;set;}
}
}
因此,这些都是施工/助手类,与项目分开
现在是当前项目
在一个项目中使用上述类和构造函数,完成它的合适方法是什么
(我可以命名这些模板)
到目前为止,我为执行某些命令所做的是:
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!Page.IsPostBack)
{
…这里还有其他一些应用程序初始化
}
其他的
{
}
//此方法应该是实例化DbTable结构的方法
//并设置表名和“ID”的值
setTablesReferences();
}
这里是混乱开始的地方:
在日常使用中,我想尝试在网站应用程序中实现它:
public void setTableReferences()
{
DBMetaDetails.DbTable CustMeta=新的DBMetaDetails.DbTable();
DBMetaDetails.DbTable timemeta=新的DBMetaDetails.DbTable();
}
所以现在我需要设置CustMeta
&TimesMeta
详细信息(id
s&name
s)
struct
有一种模板结构,一种初始化和赋值的系统技术,因此它的存在给我的逻辑带来了一些体面的秩序
那么什么是令人困惑的部分呢?
从一个角度(安全性)来看,我需要将这些表的详细信息设置为readonly
因此,DbTable.TableID
和DbTable.TableName
不会被错误覆盖
话虽如此,只能设置一个位置。。。应用程序的专用部分,如上面的setTableReferences()
,。。。在这里,我可以补充:
CustMeta.TableID=HT\u tblIDs.tblCustomersID
CustMeta.TableName=HTDB_Tables.Customers;
另一方面,我需要能够访问表的信息
因此,如果我想将这些数据表
添加到数据集中
DataSet AllTableSet=new DataSet();
//假设之前已在另一个方法中执行SQL操作。。。
//所以DataTable已经从DB中检索到了
//…但仅作为一个简短的使用示例:
添加(新数据表(CustMeta.TableName));
我的问题是使用结构的正确方法是什么。。。在我的场景中
所以,在应用程序的一个部分中:你可以初始化-给它分配一个值
从应用程序的其他部分,您可以使用它的值(仅用于读数)
这样,应用程序将无法访问其写入值,
只有通过读取值,我认为它应该通过另一个(Public ReadOnly)变量来实现
因此,该变量是要公开的……它的值不能被“损害”如果我正确理解了这个问题,我阻止其他代码修改它的方法是删除属性上的setter。但是,您仍然需要在某个时候设置它们,因此您可以将它们设置为私有,而不是完全删除设置器。例如:
public string TableName { get; private set; }
如果执行此操作,则可以设置此数据的唯一位置是在结构本身中,因此需要创建一个采用所需初始值的构造函数。比如:
public struct DbTable
{
public DbTable(string tableName, int tableId)
{
this.TableName = tableName;
this.TableID = tableId;
}
public string TableName { get; private set; }
public int TableID { get; private set; }
}
我认为,通过使用较少的代码示例和文本格式并添加更多关于最终目标的描述来简化您的问题是一个好主意。您可能需要仔细查看并开始学习
System.Data
和System.Data.SqlClient
名称空间中的类。@AlexFilipovici我可以理解您错过了本文的全部要点。我不是在寻找.net工具,整个问题是关于需要