相关疑难解决方法(0)

为什么人们使用linq来sql?

鉴于前提:

  • 有称职的SQL程序员(相关 - 编写SQL查询不是问题)
  • 有称职的应用程序开发人员(相关 - 有简单/强大/灵活的架构,用于处理连接和代码中的简单查询)

为什么人们使用linq来sql?

  • 每笔交易都增加了开销
  • 对于中等复杂的计算,很可能会出现性能损失(数据库用于处理集和计算,并且有工程师团队正在进行优化 - 为什么要搞这个?)
  • 缺乏灵活性(如果要添加另一个ui(非.NET应用程序)或访问方法,则必须将查询放回到数据库中或创建单独的数据访问层)
  • 由于没有对db进行写/更新/读取的集中控制而导致安全性下降(例如,记录已更改 - 如果允许应用程序使用linq to sql进行更新,那么您无法证明哪个应用程序更改了它或者是什么应用程序的实例改变了它)

我一直看到关于linq到sql的问题,我想知道我是否遗漏了一些东西.

linq linq-to-sql

21
推荐指数
5
解决办法
6972
查看次数

如何确保Linq to Sql不会覆盖或违反不可空的数据库默认值?

我有一个带有这些字段的表的SQL Server数据库:

  1. A bit的默认值为1 , NOT NULL.
  2. A smalldatetime具有默认值gettime(),NOT NULL.
  3. 一个int没有默认值,IDENTITY,NOT NULL.

当我为此表生成Linq to SQL时,会发生以下情况:

  1. bit没有给出特殊处理.
  2. smalldatetime没有给出特殊处理.
  3. int被标记为IsDbGenerated.

这意味着当我使用Linq to SQL进行插入时,将发生以下情况:

  1. bit将被发送为0,覆盖默认值.对?
  2. smalldatetime将被作为一个未初始化的System.DateTime,生产在SQL服务器错误,因为它不与SQL Server的SMALLDATETIME范围不同.对?
  3. IsDbGenerated int不会被发送; DB将生成一个Linq to SQL将读回的值.

我必须做出哪些更改才能使此方案有效?

总结一下:我想要具有DB分配的默认值的非可空字段,但是IsDbGenerated如果它意味着在使用Linq to SQL进行更新或插入时我无法为它们提供值,则我不需要它们.IsDbGenerated如果这意味着我必须手动修改Linq生成的代码到SQL,我也不想要它们.

编辑:答案似乎是这是当前Linq to SQL的限制.

c# sql linq sql-server-2005 linq-to-sql

14
推荐指数
1
解决办法
2828
查看次数

LINQ To SQL是否提供比使用ado.net和oledb更快的响应时间?

LINQ毫无疑问简化了数据库编程,但是它有缺点吗?内联SQL要求以某种方式与数据库通信,以打开数据库进行注入.内联SQL还必须进行语法检查,构建计划,然后执行,这需要宝贵的周期.存储过程也是伟大的数据库应用程序编程中坚如磐石的标准.我认识的许多程序员使用简化开发的数据层,但不是LINQ的程度.现在是时候放弃SP而去LINQ吗?

database sql-server linq-to-sql

9
推荐指数
1
解决办法
6041
查看次数

标签 统计

linq-to-sql ×3

linq ×2

c# ×1

database ×1

sql ×1

sql-server ×1

sql-server-2005 ×1