English 中文(简体)
c# ado.net:为财产绘制数据库领域的最佳方式
原标题:c# ado.net : best way to map database fields to property
  • 时间:2009-08-25 19:18:45
  •  标签:

利用VS2005, .net 2.0 , C#

至今

如何最妥善地规划堆积的 pro柱,使其与灰色物体特性相分离,从而造成紧密的 coup合。

例如,我想做以下工作:

DataRow row = Getmyrows();
MyObject.MyProperty1 = row["col1"];
MyObject.MyProperty2 = row["col2"];

因此,如果储存的代相机一栏改成col,那么双亲代码就会破碎。 解决这一问题的最佳做法是什么。 守则样本将有助于并事先感谢你。

问题回答

我将研究OR地图仪。 LINQ to, nHibernate, Part Framework, LLBLGen, et al. 这使你能够通过XML或其他一些外部配置来源对你进行测绘。 其中大多数还提供了一种办法,使贵实体完全脱离始终存在的框架,使贵实体成为POCO(Plain Old CLR Im)。 OR地图仪的另一个好处是,它们为你制作传单,使你能够基本上消除你所储存的亲人一层,这又是一场政变,可能引起问题(在你的法典和你的银图中)。

共同办法:

  1. 您请执行,以贴上。 http://msdn.microsoft.com/en-us/library/esbykzb%28VS.71%29.aspx” rel=“nofollow noreferer”>。 所有物体和数据结构之间的制图均在属于该表的图表中进行。 之后,你能够将物体重量/代码等同起来:

    MyObject.MyProperty1 = 数据Set.TableName.PropertyName

  2. 我注意到其他人说,我会说的是同样的事情; Go w/ an ORM. 我知道过早优化是一个滑坡,但你不可避免地会找到明确的理由来继续这一路线。 由于你的要求变得更加复杂,你对此感到很遗憾,你正在学习一个宝贵的技能,在其中显然取得了许多势头。 NET空间。

最好的解决办法是使用适当的O/RM,如NHibernate,或如果你能够找到“无”Linq to 或实体框架。

然而,如果你必须,我建议使用IDataReader/SqlDataReader(简单、最佳业绩),但如果你想用“硬性方式”来绘制名字的地图,你就没有成功。

两位同事和我在2天回过来的一种做法是,形成一种习惯特性,我们用来从数据表中具体列出外地名称,并将我们的物体财产与它挂钩。 然后建造一个通用的实体建设商,将数据用户作为参数(实体设计师(IDataReader rdr));随着该实体通过数据校方开展工作,它将制造一个空洞的T,反映这一类别,穿过这些特性来获取定制信息及其类型,并据此确定价值。

还有一个习俗属性,具体规定了我们加入和增补SPROCs所使用的参数,以便自动确定参数。

如果你必须这样做,并愿意使用口服体液处理器,将一栏名字的制图储存在Xml文档中。

<appSettings>
    <key="prop1" value="col1">
</appSettings>

之后,在法典中做了一些事情:

myObject.Prop1 = ConfigurationManager.AppSettings["prop1"].Value

我知道其ky,涉及每个财产的Xml(或汇辑)阅读,但会奏效。





相关问题
热门标签