Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从XSD文件生成DDL、DML和CORM?_C#_Orm_Xsd_Code Generation_T4 - Fatal编程技术网

C# 如何从XSD文件生成DDL、DML和CORM?

C# 如何从XSD文件生成DDL、DML和CORM?,c#,orm,xsd,code-generation,t4,C#,Orm,Xsd,Code Generation,T4,我一直在使用或搜索活动记录Pttern的.Net实现 我想从XSD文件生成ORM类。谁能告诉我怎么做 [编辑] 虽然我提到的技术似乎完全不同,但以下是我设想如何将它们结合使用: XSD指定实体、数据类型和允许的值 这些信息不仅自然地映射到DDL,而且映射到数据。简言之,XSD可用于生成DDL和DML专门插入语句,以便在生成DDL和DML语句并从XSD运行时适当初始化新创建的数据库 好的,现在我们有了从XSD生成和初始化的数据库实体。一个自然的步骤是为底层数据库创建一个DB访问层,以提供CRUD功

我一直在使用或搜索活动记录Pttern的.Net实现

我想从XSD文件生成ORM类。谁能告诉我怎么做

[编辑]

虽然我提到的技术似乎完全不同,但以下是我设想如何将它们结合使用:

XSD指定实体、数据类型和允许的值 这些信息不仅自然地映射到DDL,而且映射到数据。简言之,XSD可用于生成DDL和DML专门插入语句,以便在生成DDL和DML语句并从XSD运行时适当初始化新创建的数据库

好的,现在我们有了从XSD生成和初始化的数据库实体。一个自然的步骤是为底层数据库创建一个DB访问层,以提供CRUD功能——这就是ORM的用武之地

出于我不想在这里讨论的原因,我已经确定了Db访问的活动记录模式,这就是Castle Project或SubSonic的用武之地

因此,我试图找出的是如何自动生成DDL、DML和ORM的过程,以便在XSD发生变化时,我可以同步db和ORM

就像我之前说的,我知道我想做什么,但我不知道这是不是一种方式,这就是为什么我问这个问题。我注意到T4一直被提及——也许这就是解决问题的方法——有一些T4知识的人能告诉我这是否可行,并且可能提供一个关于如何做我上面描述的事情的粗略指南吗


顺便说一句,ORM类将使用C语言,而且,我运行的是Linux mono而不是Windows。

好吧,至少要礼貌地告诉我,为什么你否决了这个,并要求关闭它?。问这个问题是因为我想知道是否有一种方法可以使用Casle从给定的XML模式文件生成ORM。我对XML技术和Castle项目都是新手,所以我想知道我想做的事情是否可行,而不是花几天的时间来研究是否可行。肯定有人知道这是否可能。不要因为你不知道答案而生气,这里有一些相当聪明的人;Castle ActiveRecord用于关系数据库。XSD与关系数据库无关。您可能希望将T4作为代码生成的工具。我要说的是,书面的问题非常令人困惑,很难说出被问的是什么,我没有投反对票。你为什么认为你需要一个ORM?你有关系数据库吗?如果你有关系数据库,XSD与你的关系数据库有什么关系?@Michael Maddox:谢谢你的评论——我已经编辑了我的问题,以说明我认为这些技术是如何结合在一起的。同时,我也会看看T4。实际上,T4+亚音速而不是城堡可能是一个不错的选择。我只需要检查一下T4是否适用于mono。T4肯定适用于mono。我不知道有什么现成的东西可以满足你的需求,但这并不意味着它不存在。如果我处在您的位置,我可能会使用T4构建自己的定制解决方案。我更喜欢Castle ActiveRecord而不是亚音速,但两者都可以。基本上,T4可以完成.NET所能做的一切,因此您可以使用T4解析XSD和输出C类等。关于您对T4的问题,我建议您查看:。这会让你了解如何开始使用T4。我个人曾使用T4从XSD生成facade类,这是可行的,但由于XSD模型的复杂性/不匹配性,这并不是很简单。好吧,至少要有礼貌地告诉我为什么你否决了它,并要求关闭它?。问这个问题是因为我想知道是否有一种方法可以使用Casle从给定的XML模式文件生成ORM。我对XML技术和Castle项目都是新手,所以我想知道我想做的事情是否可行,而不是花几天的时间来研究是否可行。肯定有人知道这是否可能。不要因为你不知道答案而生气,这里有一些相当聪明的人;Castle ActiveRecord用于关系数据库。XSD与关系数据库无关。您可能希望将T4作为代码生成的工具。我要说的是,书面的问题非常令人困惑,很难说出被问的是什么,我没有投反对票。你为什么认为你需要一个ORM?你有关系数据库吗?如果你有关系数据库,XSD与你的关系数据库有什么关系?@Michael Maddox:谢谢你的评论——我已经编辑了我的问题,以说明我认为这些技术是如何结合在一起的。同时,我也会看看T4。实际上,T4+亚音速而不是城堡可能是一个不错的选择。
我只需要检查一下T4是否适用于mono。T4肯定适用于mono。我不知道有什么现成的东西可以满足你的需求,但这并不意味着它不存在。如果我处在您的位置,我可能会使用T4构建自己的定制解决方案。我更喜欢Castle ActiveRecord而不是亚音速,但两者都可以。基本上,T4可以完成.NET所能做的一切,因此您可以使用T4解析XSD和输出C类等。关于您对T4的问题,我建议您查看:。这会让你了解如何开始使用T4。我个人使用T4从XSD生成facade类,这是可行的,但由于XSD模型的复杂性/不匹配性,它并不是很简单。