ORM的思考2 对象建模


ORM的思考2 对象建模


单刀直入

我认为,目前的ORM模型,最大的一个问题,就是没有分离数据和元数据。

在关系数据库里面,SQL都分至少有2种,操作数据,操作元数据(Schema)。特别是后者:

 

CREATE   TABLE  TABLE1
{
ID 
TEXT

}

 

然而,在ORM中这个优秀的传统没被继承,变成了一大堆的attribute, xml配置文件。一个Class经常看见:

 

class  Person
{
[PrimaryKey]
string  name;

[Column]
string  address;

.
}

多么的混乱,一个用户为了使用对象,首先就要忙着“部署”元数据。当稍微的一点改变,立刻焦头烂额。。。(这个对象的字段到底是哪张表的??? :-))


我的IDEA - 面向对象的元数据操作

在c#里面,一个对象包含了域和方法,域就是元数据,例如下面类中的name, card等。

 

class  Person
{
string  name;
Card card;
List
< Email >  emailS;
}

class  Email
{
string  address;
}

class  Card
{
string  name;
}

 


那么创建这个类的命令:

 

CREATE  OBJECT EMAIL
{
ADDRESS STRING
}

CREATE  OBJECT CARD
{
NAME STRING
}

CREATE  OBJECT PERSON
{
NAME STRING,
CARD OBJECT,
EMAILS COLLECTION
}

 

多么的清楚!

通过创建了元数据,用户可以使用非常干净的对象了。我甚至可以:

 

DROP  OBJECT EMAIL;

ALTER  OBJECT PERSON  ADD  EMAIL COLLECTION

ALTER  OBJECT PERSON  ADD  PRIMARYKEY NAME

ALTER  OBJECT PERSON  DROP  EMAIL

ALTER  OBJECT PERSON  DROP  PRIMARYKEY NAME

不知道大家怎么想。如果不同意的请告诉我一个原因或者解决方案。谢谢!


转载于:https://www.cnblogs.com/zc22/archive/2007/10/19/930438.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值