ORM的思考2 对象建模
ORM的思考2 对象建模
单刀直入
我认为,目前的ORM模型,最大的一个问题,就是没有分离数据和元数据。
在关系数据库里面,SQL都分至少有2种,操作数据,操作元数据(Schema)。特别是后者:
{
ID TEXT

}
然而,在ORM中这个优秀的传统没被继承,变成了一大堆的attribute, xml配置文件。一个Class经常看见:
{
[PrimaryKey]
string name;
[Column]
string address;

}
多么的混乱,一个用户为了使用对象,首先就要忙着“部署”元数据。当稍微的一点改变,立刻焦头烂额。。。(这个对象的字段到底是哪张表的??? :-))
我的IDEA - 面向对象的元数据操作
在c#里面,一个对象包含了域和方法,域就是元数据,例如下面类中的name, card等。
{
string name;
Card card;
List<Email> emailS;
}
class Email
{
string address;
}
class Card
{
string name;
}
那么创建这个类的命令:
{
ADDRESS STRING
}
CREATE OBJECT CARD
{
NAME STRING
}
CREATE OBJECT PERSON
{
NAME STRING,
CARD OBJECT,
EMAILS COLLECTION
}
多么的清楚!
通过创建了元数据,用户可以使用非常干净的对象了。我甚至可以:
ALTER OBJECT PERSON ADD EMAIL COLLECTION
ALTER OBJECT PERSON ADD PRIMARYKEY NAME
ALTER OBJECT PERSON DROP EMAIL
ALTER OBJECT PERSON DROP PRIMARYKEY NAME
不知道大家怎么想。如果不同意的请告诉我一个原因或者解决方案。谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!