Linq/数据对象最佳实践
我是一名新的asp.net程序员,我刚刚问过谁给我留下了一个更通用的 关于Linq和数据对象,当前的最佳实践是什么?具体到什么时候,;变暗、变新并处理它们 另外,在同一页面上的许多不同范围中使用的对象(例如用户数据对象)又如何呢。它们应该是模块级的还是在每个范围中创建的Linq/数据对象最佳实践,linq,data-entry,Linq,Data Entry,我是一名新的asp.net程序员,我刚刚问过谁给我留下了一个更通用的 关于Linq和数据对象,当前的最佳实践是什么?具体到什么时候,;变暗、变新并处理它们 另外,在同一页面上的许多不同范围中使用的对象(例如用户数据对象)又如何呢。它们应该是模块级的还是在每个范围中创建的 如果有人能给我一些关于当前最佳实践的注释,甚至是一篇描述它们的文章的链接,我将不胜感激。通常,您希望将正在操作的数据作为参数传递给函数,并将类型依赖项作为构造函数参数传递给函数。例如,linq数据上下文可能是您的类型操作所依赖的
如果有人能给我一些关于当前最佳实践的注释,甚至是一篇描述它们的文章的链接,我将不胜感激。通常,您希望将正在操作的数据作为参数传递给函数,并将类型依赖项作为构造函数参数传递给函数。例如,linq数据上下文可能是您的类型操作所依赖的内容,因此应该被注入构造函数中。用于在上下文中查找数据的值将快速更改,并在同一上下文中重复使用,因此将成为类型上的函数参数
如果您的类型是为了在其生存期内在多个上下文中执行操作而构建的,那么您可以考虑将上下文作为函数参数传递,但这可能比其他任何东西更能说明设计问题。
至于在类型的函数作用域内实例化数据上下文,实际上没有任何理由在函数中有这种开销,除非类型的生存期保证只持续函数调用本身的生存期。即使现在是这样,在将来的某个时候也可能不是这样,因此最好在设计你的类型时考虑到这种情况。快速思考(我正在开会,我太糟糕了) 对于ASP.NET,数据上下文的最大生存期为一次发布或回发。您可以创建更多,但它们都将随着页面卸载而消失。是的,你应该明确地处理它们;using语句是处理该问题的最佳方法,因为它将在块结束时自动调用dispose:using (NorthwindModel nw = new NorthwindModel())
{
do stuff
}
从LINQ查询返回的数据不会随数据上下文一起消失,但此时它不再连接到上下文,并且不能再使用更改来更新数据库。(您始终可以创建新上下文,然后作为新对象附加,或重新查询和合并更改,或任何满足您需要的内容。)
请注意,LINQ查询在需要计算数据之前不会执行。在处理数据上下文时保留查询是一个非常容易的错误,而当查询需要运行时,它就不能运行,因为它是使用不再存在的数据上下文创建的。有两种方法可以解决这个问题