问题标签 [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 投票
2 回答
3702 浏览

c# - 检测 DataContext 表或视图是否存在的快速方法

目前,我正在开发一个通过 LINQ-to-SQL 依赖(并因此连接到)各种数据库的应用程序。对于其中一个数据库,连接字符串可能会有所不同,因此是可配置的 - 但是,该数据库的架构对于所有连接字符串都是相同的。

由于可配置的连接字符串,我想在我的应用程序启动期间验证 DataContext,以确保我的应用程序使用的所有表和视图都可用。

Table<T>对象中的对象DataContext总是被初始化——即使相应的 SQL 表或视图没有任何记录。

那么。目前,验证检查执行如下:

虽然这确实有效,但确定 valid 的值需要相当长的时间(每个 Table 的每条记录都被触及),最终导致超时。那么,有没有一种更快、更可靠的方法来判断某个Table<T>的 a是否DataContext真的作为表存在于对应的数据库中呢?

0 投票
1 回答
1145 浏览

nhibernate - 数据上下文和休眠会话

我是面向对象编程的新手。我正在使用 Windows 应用程序和模型视图演示者模式,我希望更改跟踪可用。我的问题如下

我是否需要演示者为我的工作单元举行 Nhibernate Session 或 Linq to Sql Datacontext?这是我构建 Winform 应用程序的最简单方法吗?如果我有一个复杂的表单,其中可能有多个 UOW 在同一个表单上,那么以最简单的方式,我将为每个 UOW 设置一个演示者。

我的这种想法对吗??

0 投票
3 回答
5878 浏览

wpf - 从代码隐藏设置用户控件的 DataContext

这应该很容易,但它会引发 VS2008 的严重循环。

我正在尝试使用 MVVM 的 WPF,尽管我已经开发了大约 15 年,并且有一个比较,但我还是一个新手。科学。程度。在当前客户端,我需要使用 VB.Net。

我已经重命名了我自己的变量并删除了下面代码中的一些干扰,所以如果它在语法上不是 100% 完美,请原谅我!您可能并不真的需要代码来理解问题,但我将其包括在内以防万一。

我有一个非常简单的 MainView.xaml 文件:

我还有一个名为 DataView 的 UserControl,它由一个 DataGrid 组成:

DataView 用户控件的构造函数通过将 DataContext 绑定到视图模型来设置它,如下所示:

DataView 的视图模型如下所示(ViewModelBase 中没有太多内容):

现在,如果我在 XAML 中实例化它,这个 UserControl 就可以正常工作。当我运行代码时,网格会显示出来并很好地填充它。

但是,网格需要很长时间才能加载其数据,我想在单击按钮后以编程方式创建此用户控件,而不是在 XAML 中以声明方式实例化网格。我想实例化用户控件,并将其作为 StackPanel 控件的子项插入:

当我这样做时,一旦 Button1_Click 完成,我的应用程序就会锁定,开始占用 RAM,并占用大约 50% 的 CPU。

我没有正确实例化我的 UserControl 吗?这一切似乎都归结为 DataEntry 构造函数中的 DataContext 分配。如果我将其注释掉,则该应用程序将按预期工作(当然,网格中没有任何内容)。

如果我将此代码块移动到 Button1_Click (基本上将 DataEntry 的构造函数代码向上移动一个级别),应用程序仍然失败:

我难住了。谁能给我一些关于我可能做错了什么的提示,或者甚至如何调试我的应用程序正在进入的无限循环?

非常感谢。

0 投票
2 回答
818 浏览

linq - 同时使用没有 TimeStamp 和 StoredProcedures 的 Linq SubmitChanges

我正在使用没有 rowversion 或时间戳的 Sql 表。但是,我需要使用 Linq 来更新表中的某些值。由于 Linq 无法知道要更新哪些值,因此我使用第二个 DataContext 从数据库中检索当前对象,并使用数据库和实际对象作为 Attach 方法的输入,如下所示:

虽然这确实有效,但我有一个问题:我还在某些时候使用 StoredProcedures 来更新 Customer 的某些字段。现在想象以下工作流程:

  1. 从数据库中获取客户
  2. 将客户字段设置为新值
  3. 使用存储过程更新另一个客户字段
  4. 调用 SaveCustomer

现在发生的情况是,SaveCustomer 方法从数据库中检索当前对象,该对象不包含代码中设置的值,但包含存储过程设置的值。当将它与实际对象附加然后提交时,它将更新数据库中代码中设置的值,并且... tadaaaa... 将另一个设置为 NULL,因为实际对象不包含由存储过程。

这可以理解吗?

有没有解决这个问题的最佳实践?

0 投票
1 回答
1350 浏览

c# - LinqToSQL - 用大量表映射 DataContext?

我一直在从事一个项目,我一直在使用LinqToSQL它涉及很多表。所有这些都映射在一个.dbml文件中(即只有一个DataContext)。我这样做的借口是(当前)您不能跨多个数据上下文加入。例如...

有人认为事实并非如此,我应该将.dbml文件分解为单独的更小(即易于管理)的数据上下文。我现在刚刚设置了一个示例,运行与上述类似的查询并收到以下错误...

base {System.SystemException} = {“查询包含对在不同数据上下文中定义的项目的引用。”}

我很好奇,我错过了什么吗?有很多表需要映射的常见做法是什么?如何分解 .dbml 文件?

0 投票
3 回答
193672 浏览

wpf - WPF 数据绑定:如何访问“父”数据上下文?

我有一个包含在窗口中的列表(见下文)。窗口DataContext有两个属性,ItemsAllowItemCommand

如何获取Hyperlink'sCommand属性的绑定需要解决窗口的's DataContext

0 投票
4 回答
1274 浏览

silverlight - 将 ItemsSource 绑定到“代理”集合。如何获取数据上下文?

我们有一个 Silverlight 应用程序,其中包含多个列表框和组合框,这些列表框和组合框显示的数据排序不正确,我需要对其进行修复。它们的大部分 ItemSource 属性都是通过 XAML 设置的。它们的 DataContext 可能不会直接在控件上设置,而是在父级上设置。所以我不能轻易地在后面代码中的 ItemSource 或 DataContext 分配上加上“OrderBy”,因为该分配可能不明确存在。

所以我有了创建一个“代理”集合的想法。代理集合将获取原始 ItemSource 并公开排序版本。然后我就可以转换这个:

进入这个:

不是太寒酸!但是,由于 ProxyCollection 不是 ListBox 的子项,因此 ListBox 的 DataContext 不会传播给它,并且绑定不会神奇地起作用。如果我手动设置 ProxyCollection 集合的 DataContext 效果很好。但是,如果无论如何我都必须手动设置 DataContext,我也可以删除代理集合并手动设置 Listbox 的 DataContext,添加一个“OrderBy”。

那么关于如何在代理集合上自动获取 ListBox 的 DataContext 集的任何想法?还是有其他天才的想法?

0 投票
3 回答
2117 浏览

c# - 为什么设置 DataContext 时我的验证规则没有运行?

我的窗口上有以下 Loaded 事件:

对于上面初始化的每个属性,我都有一个TextBox绑定到它的属性,每个属性都有与之关联的自己的验证规则。

问题是,我的验证规则在设置时不是第一次运行this.DataContext,但在表单正常使用时效果很好(它们在TextBox失去焦点时运行)。这背后的原因可能是什么?我试过设置UpdateSourceTrigger="PropertyChanged",但这没有帮助。

编辑: 这是一个TextBox绑定到属性的示例:

0 投票
1 回答
319 浏览

c# - Scoped DataContext 间歇性引发 ExecuteReader 错误

我们的应用程序遵循为每个线程/HttpContext 维护一个 DataContext 的方法,使用 Rick Strahl 在他的博客中概述的 DataContextFactory 类,包括对 Richard 提到的 Key 的修改(使用 type.AssemblyQualifiedName)。

该解决方案看起来不错(尽管在大多数情况下,不同的方法可能会更好),但是在使用此解决方案时,我看到应用程序中出现了间歇性错误:

ExecuteReader 需要一个打开且可用的连接。连接的当前状态为关闭。

我使用以下属性访问整个代码中的数据上下文,这是我的 DataContext 类的一部分:

作为间歇性,我很难确定这一点。有谁知道我可能做错了什么,或者知道我如何能够调试这个问题?


请注意,这可能与未回答的问题重复

0 投票
1 回答
9537 浏览

wpf - 将 DataContext 传递给 WPF 中的用户控件

我有一个用户控件,它充当 ContentControl 的容器。
用户控件容器有一个列表视图控件,我想用它来更新分配给 ContentControl 的动态添加的用户控件中的控件。
IOW,当我滚动浏览列表视图控件时,UC 中分配给 ContentControl 的文本框应该更新。

当一切都在一个页面上没问题时,我已经这样做了,但是很难将 ListView 作为数据上下文传递给动态添加的 UC。

如何才能做到这一点?

在 XAML 中

在代码隐藏...

将“LocationView”添加到 PlaceHolder.Content 时,我需要将“lstIncidents”作为数据上下文传递,以便在导航 ListView 时刷新“LocationView”中的文本框。