SubSonic生成的DBSchema,二进制类型?如何使用SubSonic的架构生成器在数据库中创建二进制列?所以今晚我决定深入研究SubSonic。我在这里看到了很多问题,Rob和其他许多人都给出了很好的回答。我看到SubSonic是一个ORM,通过T4模板,它可以从现有数据库生成一些非常好的和高效的类。但是,我想走另一条路。我有一个非常丰富的域,并且想使用SubSonic和RunMigrations选项从我的域临时创建我的表。一切都很好(甚至编写了我自己的Upgrade()函数来检测代码库是否已根据程序集修订号更改,然后将所有对象更新迁移到数据库——非常灵活,足以自动升级数据库)。但是如何让SubSonic创建二进制列呢?也许我没有按预期使用它(我没有使用Query或SqlQuery,只是SimpleRepository的Linq接口)。见下文(使用常见的“博客文章”示例):[SubsonicTable]publicclassPost{[SubSonicPrimaryKey]publicInt32PostID{get;放;}[SubSonicStringLength(1024)]publicStringTitle{get;放;}[SubSonicLongString]publicStringBody{get;放;}[SubSonicStringLength(5)]公共字符串?LangaugeCode{得到;放;公共日期时间?发表{得到;放;}publicPostTypePostType{得到;放;}publicInt32PostTypeID{get{returnthis.PostType.GetHashCode();}set{Enum.Parse(typeof(PostType),value.ToString());}}publicByte[]Image{get;放;}}publicenumPostType{NotSet=0,BlogPost,Comment,Trackback,Pingback}通过SimpleRepository保存或查询此Post对象时,缺少两列:PostType(或类型枚举PostType)和Image(类型byte[]数组).现在,我在这里找到了一个hackanswer,有人发布了使用Int32PostTypeID来解决枚举问题。来吧Rob,SubSonic应该能够支持INT的枚举类型,并从它们返回。;)这就是我拥有正确创建和编写的PostTypeID的原因。这是为我创建Post表并插入第一篇文章的命令示例:Postp=newPost();p.Title="我的标题";p.Body="文章正文";p.PostType=PostType.BlogPost;varrepo=newSimpleRepository(SimpleRepositoryOptions.RunMigrations);回购。添加(p);注意:您不应在生产中使用此代码,因为RunMigrations在首次运行时会有许多其他TSQL查询。您可以通过上面的示例看到,如果Posts表不存在,这将创建该表,并创建该列。但是,这不会创建上面提到的两列:PostType和Image。思考?并提前致谢。我以为我们有一个二进制嗅探器-事实证明它并没有这样做。我需要补充——如果你不介意我们拥有的东西并补充它,那就更好了——我会爱你。在我们的扩展中抢夺战利品-你想修改ToDataTable()(我认为)......如果你没有机会-我会在下次启动SimpleRepo时添加它......我刚遇到一个二进制列问题我自己。如果您有补丁/修复程序,我愿意对其进行测试。以上就是C#学习教程:SubSonic生成的DBSchema,二进制类型?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
