c# - 对大量(50~)属性建模的策略

标签 c# nhibernate

场景

我正在解析电子邮件并使用 ORM(确切地说是 NHibernate)将它们插入数据库。虽然我目前的方法在技术上可行,但我不是很喜欢它,但也找不到更好的解决方案。该电子邮件包含 50~ 个字段,由第三方发送,看起来像这样(显然是一个非常短的虚拟样本)。

Field #1: Value 1       Field #2: Value 2
Field #3: Value 3       Field #4: Value 4       Field #5: Value 5

问题

我的问题是,要解析这么多字段,数据库表绝对是个怪物。我无法使用任何类型的关系创建适当的模型 AFAIK,因为发送的每封电子邮件都是静态数据,不依赖任何其他来源。

我唯一的想法是找到每个领域之间的共性并将它们拆分成更易于管理的 block 。假设每个实体有 10~ 个字段,因此总共有 5 个实体。然而,我并不十分喜欢这个想法,因为我所做的只是建立一对一的关系。

管理大量不受您控制的属性的好方法是什么?

有什么想法吗?

最佳答案

创建 2 个表:1 个用于主对象,另一个用于字段。这样您就可以根据需要以编程方式访问每个字段,并且对象模型看起来不会令人讨厌。

但这只是我的头脑;你有一个奇怪的问题。

如果数据返回到一个您可以轻松解析的文件中,那么您也许可以创建一个命令行应用程序,该应用程序将生成脚本和 c#,然后您可以执行并复制、粘贴到您的程序中.当从 html 页面 ( Like this one I had to do recently ) 创建表格属性时,我已经这样做了

关于c# - 对大量(50~)属性建模的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5334265/

相关文章:

c# - 在派生的 IronPython 类中与 Windows 窗体控件交互

c# - Process.Start 文件名使用 %temp%

nhibernate - 我应该将 nhibernate 用于一个相当小的项目吗?

NHibernate 还是 FluentNHibernate 还是 ActiveRecord?

java - HQL 中的 Linq ".any"等价物

c# - NHibernate Deleted 对象将被级联重新保存

c# - MonoTouch 和 "Applications are expected to have a root view controller at the end of application launch"错误

c# - 我可以在 Windows Vista 登录屏幕上方或旁边显示表单吗?

c# - 通过IP地址获取用户位置

c# - FluentNHibernate SubClassMap 问题 : Discriminator fail