ORM的思考2 对象建模


单刀直入

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

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

 

CREATE TABLE TABLE1
{
ID 
TEXT
ORM的思考2 对象建模
}

 

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

 

class Person
{
[PrimaryKey]
string name;

[Column]
string address;

ORM的思考2 对象建模.
}

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


我的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

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


相关文章:

  • 2021-09-27
  • 2021-12-02
  • 2021-11-01
  • 2021-12-07
  • 2022-12-23
  • 2021-12-22
  • 2021-10-04
  • 2021-12-15
猜你喜欢
  • 2022-02-08
  • 2022-02-26
  • 2021-09-11
  • 2021-10-28
  • 2021-10-22
  • 2021-12-27
  • 2022-12-23
相关资源
相似解决方案