ASP.Net MVC:dbml文件的最佳实践

时间:2009-11-11 16:52:54

标签: asp.net-mvc linq-to-sql

这可能只是一个是或否的问题,但无论如何都要进行......

从我见过的使用mvc的所有(大多数)示例中,看来创建dbml文件的方法只是将数据库的整个模式放入其中并让它自动生成所有linq到sql善良。看起来你只需要其中一个(因为你不能在同一个项目中的单独dbml文件中有重复的表),但由于某种原因,似乎有更好的方法来做到这一点......特别是当处理一个具有相当数量表格的大型项目。

这是创建在mvc项目中使用的dbml文件的正确方法,只需将整个表结构放入并转到城镇?如果没有,你是怎么做到的?

3 个答案:

答案 0 :(得分:3)

如果架构很大,我想我会完全依赖SQLMetal脚本来生成我的* .dbml和支持类。这样,只要数据库更新,您就可以重新生成整个数据模型。否则,如果表,视图等在数据库中得到更新,则不必删除,然后将该表拖放到visual * .dbml文件中。

实际上,我不是SQLMetal的专家,但我认为您甚至可以使用它来生成Linq-toSql所需的一切,甚至不需要/生成* .dbml文件。

答案 1 :(得分:0)

我还不确定 - 这是一个我仍在努力的问题,但我认为答案是,如果需要多个dbml文件 - 有效地查看数据 - 那么你想在他们自己的项目中托管dbml文件,这样你就可以在多个名称空间中拥有类似的东西而不会让它们发生冲突。

在这种情况下,下一个逻辑步骤是默认将dbml文件/模型放入自己的项目中,并在设置时学习如何使用它们。这还有助于重用数据库模型,其中有多个应用程序与该数据库交互。

将事物分离出去以及在单个项目中使用多个dbml文件肯定存在问题(例如,确保在所有实例中一致地实现类的扩展)但我有一个案例它并不合适。

好问题,答案可能倾向于“只是一个”而不是每个案例......

答案 2 :(得分:0)

我个人更喜欢在.dbml中创建类/关联,然后从中生成数据库。

只需将以下类添加到项目中

即可
partial class MyDataContext {
    partial void OnCreated() {
        if (!DatabaseExists())
            CreateDatabase();
        }
}