【问题标题】:SQL table vs Entity Framework MVCSQL 表与实体框架 MVC
【发布时间】:2013-01-31 22:50:58
【问题描述】:

我对 MVC 有一点了解,但我想先用 DataBase 开发 MVC。 我想知道一件事。我在网上看到一张这样的表格:

CREATE TABLE dbo.Payroll 
    (
     ID int PRIMARY KEY, 
     PositionID INT, 
     Salary decimal(9,2),
     SalaryType nvarchar(10),  
     CHECK  (Salary > 10.00 and Salary < 150000.00) 
    );

我想知道 CHECK 元素是否会导致我的网站中的数据验证。

提前谢谢

【问题讨论】:

  • 您必须在前端强制执行相同的约束。如果您不这样做,将引发您必须显式捕获的未处理错误或异常。你不太可能这样做。

标签: sql-server asp.net-mvc entity-framework


【解决方案1】:

不,它不会自动在您的网站上添加验证。它将对数据库强制执行该约束,如果用户输入超出该范围的值,它将“崩溃”。

您仍应在客户端添加验证,以防止来自数据库的未处理错误。

【讨论】:

    【解决方案2】:

    验证不会在 Web 应用程序/站点中进行,而是在数据库中进行。就像 UNIQUE 或 FOREIGN KEY 约束一样,如果违反该约束,它将引发错误/异常

    请参阅此小提琴:http://sqlfiddle.com/#!3/ede45 - 删除最后一行中的注释,看看它如何违反约束并引发错误 - 如果不处理,用户将看到。您需要在此类条目进入数据库之前对其进行处理,并且约束只是双重检查或交叉检查

    【讨论】:

      猜你喜欢
      • 2017-07-07
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      • 2015-04-26
      相关资源
      最近更新 更多