问题标签 [datacontext]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
5609 浏览

asp.net - 多个 DataContext 类是否合适?

为了在 ASP.net 3.5 应用程序中充分使用 LinqToSql,需要创建DataContext (通常使用 VS 2008 中的设计器完成)。从 UI 的角度来看,DataContext 是您希望通过 LinqToSql 公开的数据库部分的设计,并且在设置 LinqToSql 的 ORM 功能时是不可或缺的。

我的问题是:我正在建立一个使用大型数据库的项目,其中所有表都通过外键以某种方式互连。我的第一个倾向是创建一个巨大的 DataContext 类来模拟整个数据库。这样我理论上可以(尽管我不知道在实践中是否需要)使用通过 LinqToSql 生成的外键连接来轻松地在我的代码中的相关对象之间移动,插入相关对象等。

然而,经过一番思考,我现在认为创建多个 DataContext 类可能更有意义,每个类都与我的数据库中的特定命名空间或逻辑相关部分相关。我主要担心的是,始终为与数据库特定区域相关的单个操作实例化和处置一个巨大的 DataContext 类会对应用程序资源造成不必要的影响。此外,创建和管理较小的 DataContext 文件比创建一个大文件更容易。我会失去的事情是,数据库的一些遥远部分将无法通过 LinqToSql 导航(即使在实际数据库中连接它们的关系链)。此外,还会有一些表类存在于多个 DataContext 中。

关于多个 DataContexts(对应于 DB 命名空间)是否适合代替(或补充)一个非常大的 DataContext 类(对应于整个 DB)的任何想法或经验?

0 投票
3 回答
791 浏览

sql-server - 如何确定从 LINQ 到 SQL 的结果集的大小(以字节为单位)

在编写手动 SQL 时,很容易估计查询返回的数据的大小和形状。我越来越发现使用 LINQ to SQL 查询很难做到这一点。有时我发现的数据比我预期的要多得多——这确实会减慢直接访问数据库的远程客户端的速度。

我希望能够运行查询,然后准确地知道通过网络返回了多少数据,并使用它来帮助我优化。

我已经使用 DataContext.Log 方法连接了一个日志,但这只能告诉我发送的 SQL,而不是接收到的数据。

有小费吗?

0 投票
3 回答
2038 浏览

asp.net-mvc - 如何使用 linq2sql 存储库在我的 Asp.net Mvc 中实现缓存策略?

我不知道我应该使用 httpcontext 缓存还是企业库缓存应用程序块。此外,在删除或更新属于缓存列表的实体时,缓存策略的最佳模式是什么?

我应该从缓存中删除所有列表还是只从缓存列表中删除该项目?如果我更新它,我将从缓存中删除列表或更新其中的实体。

0 投票
4 回答
7683 浏览

sql - LINQ to SQL 多个 DataContext-s

我试图找出关于如何组织 DataContexts 的最佳策略。我们工作的典型数据库有 50 到 100 个表,通常是第三范式,它们之间有很多关系。我认为我们有两个选择:

  1. 将所有表放在一个上下文中。这将确保我们所做的任何事情都将在数据库中以正确的顺序提交。问题是 LINQ 设计器会弄乱 50 多个表,我担心性能可能会受到影响。
  2. 根据表的逻辑分组创建多个数据上下文。问题在于,在某些地方,关系的一侧将在一个上下文中,而另一侧在另一个上下文中。我们必须手动处理以正确的顺序提交两个上下文。

有没有推荐的做法来处理这个问题?

更多细节:

我想在 LINQ to SQL 之上创建自己的实体和工作单元。实体将在 xml 模型文件中定义,其中还将指定到 LINQ 实体的映射。自定义工具将根据模型生成我的实体 (POCO)。客户端代码将仅与我的实体和我的工作单元交互;永远不要直接使用 DataContext 或 LINQ 实体。但是我不想复制 LINQ to SQL 提供的开箱即用的功能,所以我想使用底层的 LINQ DataContext。这意味着我不能在不同的数据上下文中拥有两个订单,因为不可能将我的 POCO 订单与它们都映射。

0 投票
4 回答
3359 浏览

asp.net-mvc - 保存 dbml 后,我的 MVC 中无法访问 Linq DataContext 类

我刚刚下载了 MVC,我正在学习一个教程。一切都很好,直到我尝试声明一个 DataContext 对象。

我的 dbml 被命名为db.dbml(在名为 test.dbml 上尝试了另一个),当我尝试这个时:

我得到:

找不到类型或命名空间名称“dbDataContext”...

我错过了什么吗?在 webforms 中,这就是我所要做的,而在教程中,这就是所有显示的内容。我今天下载了最新的MVC...

谢谢你。

**编辑:我正在使用 VS2008 SP1

0 投票
1 回答
5735 浏览

linq-to-sql - LinkDataSource 无法加载 DataContext

我正在尝试使用 VS 2008 在网页上填充下拉列表控件,并不断收到无法加载 DataContext 的错误。我的后端是一个 SQLx server 2005 DB。我创建了一个链接到 SQL 数据上下文并在其中有 1 个表。我的 LinKDataSource 如下 - asp:LinqDataSource ID="LinqDataSource1" runat="server"ContextTypeName="DACDataContext" TableName="portfolio"> /asp:LinqDataSource

我的下拉定义是:asp:DropDownList ID="ddlPortfolio" runat="server" Width="165px" DataSourceid="LinqDataSource1" DataTextField="porfolio_name" DataValueField="portfolio_id"> /asp:DropDownList 我可以在我的属性中看到我的 ContextTypeName 是 DACDataContext 的 DatContext

我得到的具体错误是:HttpException(0x80004005):无法加载类型“DACDataContext”。

InvalidOperationException:找不到 LinqDataSource 'LinqDataSource1' 的 ContextTypeName 属性中指定的类型。]

我知道这一定是非常愚蠢的事情,但我束手无策。

请帮忙。

0 投票
3 回答
7187 浏览

.net - 获取对象的 DataContext

如果我有 LINQ 对象:

以及应用程序中的其他地方:

如何获取跟踪“客户”对象更改的 DataContext 实例?

编辑:为什么我不想将 DataContext 传递给方法。

1) 始终传递 2 个对象而不是 1 个是整个应用程序的“丑陋”模式。

  • 每个业务对象的方法都需要下一个参数。
  • 收藏将需要从“列表”更改为“列表>”。

这两点将更难维护 - 开发人员必须每次都设置正确的 DataContext 实例(容易创建错误),尽管 DataContext 知道具体对象是否附加到另一个 DataContext。

2)我想要(当前版本的应用程序使用它)处理来自不同“地方”的对象集合的“任何”业务逻辑(例如,通过拖放操作浮动窗口)。

Currentyl 我们使用自定义类型的数据集,因此有关更改的信息位于数据行(DataRow = 业务对象)中,获取它没有问题,或者创建一个克隆然后将其保存到数据库中。

0 投票
1 回答
137 浏览

linq-to-sql - 我可以为 Linq-to-sql DataContext 指定一组基本参数吗?

我有一个 LINQ-to-SQL 数据上下文,它表示产品与价格的父子关系。我正在遍历产品列表并检索每个产品的价格。问题是产品和价格后面的表都包含多个环境的产品或价格列表,由 3 字段复合键确定。我只想检索其中一个环境的产品和价格。

为此,我可以在每个 LINQ 查询中指定一个长 where 子句,该子句由产品密钥和复杂环境密钥组成,如下所示:

我希望能够为 DataContext 全局指定 Client、SalesOrg 和 DistributionChannel,这样我需要在查询本身中指定的只是产品 ID(MaterialNumber)。这样,当我开始查询我们的生产环境时,对 DataContext 的简单更改将改变我正在查询的环境。

这可能吗?一个简短的代码示例或指向背景理论的指针都会很棒!

0 投票
2 回答
586 浏览

wpf - Silverlight DataBinding 错误 - 虽然适用于 WPF!

启动一个新的 Silverlight 应用程序...并在后面的代码中(在“加载”事件中),输入以下代码:

但...

引发的错误是“值不在预期范围内”。顺便说一句,此代码在常规 WPF(Windows 开发)中 100% 工作,应该没有理由不能在 WPF/E 中工作:)

有什么想法吗?

0 投票
2 回答
1571 浏览

.net - 确定 Linq to Sql 查询的源 DataContext

在我的应用程序中,我有几个 DataContexts 连接到具有不同模式的不同数据库。在自定义用户控件中,我显示查询结果并让用户编辑它们,当用户编辑数据时,我希望将更改持久保存到数据库中。为此,我需要引用源 DataContext(或至少源 datacontext 类型),以便我可以执行DataContext.SubmitChanges();

有什么方法可以确定查询来自哪个 DataContext?DataQuery 类本身被标记为内部的,所以我不能访问它的上下文属性而不诉诸丑陋的反射黑客,所以我正在寻找一种更清洁的方法。

有(几种)解决这个问题的方法,例如传递对源 DataContext 的引用,但我想必须有一种更简单的方法来做到这一点。

编辑:以下代码有效,但很难看: