【问题标题】:Models and changing database schemas模型和不断变化的数据库模式
【发布时间】:2014-06-04 08:06:47
【问题描述】:

如果我的架构使用 asp.net mvc 5 更改,我还能使用实体框架访问数据库中的数据吗?例如,我有一个具有名称和 ID 的客户模型。如果我在客户模型建模后的表中添加另一列,如果我不更新模型,它会破坏我的应用程序吗?

另一个问题是我可以在不知道确切的列名甚至架构的情况下执行查询吗?例如,我只有从网页上的用户输入中给出的用户想要查询的数据库名称和表。

【问题讨论】:

    标签: c# asp.net-mvc


    【解决方案1】:

    如果您没有首先使用代码启动数据层或直接更改数据库模型,那么您将需要对其进行逆向工程。详情在http://msdn.microsoft.com/en-us/data/jj200620.aspx

    如果使用 EF,这可能是将数据库同步回模型的最佳方式。否则,您将需要编写自己的 ADO.NET 代码或使用其他 ORM 框架,这可能会给您带来更多的宽容。

    【讨论】:

    【解决方案2】:

    您的第一个问题的答案是绝对肯定的,也许它会破坏您的申请。如果您使用该模型将数据插入数据库并且新添加的列不允许空值,那么您插入数据的任何地方都会中断。如果你严格使用它来查询应该没问题。

    我不太明白第二个问题。如果您不知道架构或列名,您将如何查询数据库?你会怎么处理结果?也许你可以用你正在尝试做的例子来更新你的问题。

    【讨论】:

    • 如果我只知道数据库名称和表(来自用户输入),我将能够简单地在网页上显示查询结果。这就是为什么我想知道是否需要将数据作为模型在页面上显示,类似于 Rails。
    • 所以您正在构建一个查询工具,您的用户可以使用它来对您的数据库执行命令?这似乎是个坏主意,但我不知道整个故事,所以也许你已经采取了保护措施来防止恶意查询(至少我希望如此)。
    • 我有适当的保护措施(从带有参数化查询的下拉列表中选择)。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 2012-07-19
    • 2019-03-18
    • 1970-01-01
    • 2014-11-23
    • 2021-06-29
    相关资源
    最近更新 更多