问题标签 [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 回答
4420 浏览

c# - 即使抛出异常,HttpContext.Current 是否也会被释放?

我问的原因是因为该HttpContext.Current.Items集合似乎是放置IDisposable对象的好地方,例如 aDataContext以便存储库可以透明地访问它,而不必将与特定 ORM 技术相关的任何依赖项注入到存储库中。这也将允许存储库决定是否参与UnitOfWork或承担实际持久化任何更改的额外责任。

例如:

这页纸:

存储库:

当然,如果集合DataContext中没有它,我会检查空值并执行获取 a 所需的步骤。HttpContext.Current.Items

所以,回到我最初的问题,给出上面的代码:即使抛出异常,它是否会与它的 Items 集合中包含的任何对象一起被处置?HttpContext.Current

0 投票
2 回答
2350 浏览

c# - 如何清除 LinqToSql 中的更改?

我的 WPF 应用程序中有一个组合框,它数据绑定到我的视图模型中的对象列表。当用户对所选对象进行更改然后在保存前选择另一个项目时,我需要清除所做的更改。

我以为我可以使用 dataContext.GetChangeSet().Updates.Clear() 但由于某种原因,该集合是只读的。

我也尝试使用 dataContext.Refresh 但这也不起作用,因为数据库中不存在该对象,我从 SP 手动创建它。

请帮忙。谢谢。

0 投票
1 回答
1466 浏览

c# - 如何在 LinqToSql 中为继承的子类设置自定义插入/更新/删除方法?

我在 LinqToSql 中创建了一个低音类,它有 2 个子类。我需要为每个子类自定义更新方法分配不同的存储过程。这样做很好,但我收到“无效的对象名称'xxx'”的错误。

例如

...Class2 继承 Class1 并且 Class2 有它自己的自定义 INSERT 方法(这是我希望它执行的)。

谢谢。

解决方案:布莱恩的回答给了我我所追求的。这是我添加到设计器后面的类中的代码:

InsertSP 和 InsertSP2 存储的过程是使用设计器拖动的,以节省我必须手动调用 sp 的麻烦。

布莱恩的所有功劳

0 投票
2 回答
2481 浏览

c# - 如果在具有自动增量的表上调用多个插入,则 Linq to SQL 数据上下文不会提交

尝试一次提交两个插入时遇到问题。该表有一个自增主键。设置的评论对象没有设置 ID 值,以便数据库可以分配它。

如果我立即提交,我的代码适用于单个插入,但如果我尝试执行多个 InsertOnSubmit 命令,那么它似乎没有执行任何操作,并且即使我的代码在 try and catch 块中也不会返回错误或异常。有没有其他人有这个问题,或者你知道我应该往哪个方向看?

示例 1(这不会提交到数据库)

示例 2(这工作正常)

0 投票
1 回答
1180 浏览

linq-to-sql - LINQ to SQL:使用字符串文件名在运行时创建 DataContext

使用 FileInfo 我可以找到 DataContext .dbml 文件的文件名。

前提是我声明:

Dim DataModel = New AttributeMappingSource().GetModel(GetType( NorthwindDataContext ))

使用 System.Data.LINQ.Mapping 我可以找到所有表的名称以及它们的列和关系。

这一切都要感谢 Jomo Fisher 的精彩帖子:LINQ to SQL Trick: Get all Table [and Column] Names: http://blogs.msdn.com/jomo_fisher/archive/2007/07/30/linq-to- sql-trick-get-all-table-names.aspx

但是如何在不明确知道 DataContext 对象的情况下获得相同的结果?我的意思是我该如何“替换”这个:

和:

0 投票
2 回答
995 浏览

c# - 什么定义了 WPF 中的绑定更新顺序?

我有一段使用多个绑定的 WPF/C# 代码:

  1. 组合框用于选择帐户
  2. 第二个组合框的 itemssource 属性绑定到选定的帐户。第二个组合框用于选择联系人
  3. 网格的 itemssource 属性绑定到选定的帐户。此网格包含选定的帐户发票。
  4. Contacts 组合框父 DataContext 绑定到选定的 Invoice。
  5. Contacts 组合框的 SelectedItem 绑定到数据上下文中 Invoice 的 InvoiceContact 属性。

但是,绑定不会按照我希望的顺序更新。当我选择另一个帐户时,Contact 组合框的 ItemsSource 属性首先更改,然后显然更改了 SelectedItem,这会更改 InvoiceContact,然后,选定的 Invoice 会更改...

无需说它会弄乱所选的发票。

如何控制用于更新绑定的顺序?

谢谢

亚历克斯

0 投票
3 回答
3899 浏览

linq - 使用 LINQ-to-SQL 模拟 SQL 插入触发器

使用 LINQ-to-SQL,我想在插入父实体时自动创建子记录。基本上,模仿 SQL 插入触发器的工作方式,但在代码中,以便可以完成一些额外的处理。

父母与孩子有关联,但似乎我不能简单地在 DataContext 的SubmitChanges().

例如,

这将是理想的,但不幸的是,新创建的Child记录没有插入到数据库中。有道理,因为 DataContext 有一个对象/语句列表,并且可能不喜欢在其中添加新项目。

同样,拦截partial void InsertParent(Parent instance)DataContext 中的函数并尝试添加Child记录会产生相同的结果 - 没有错误,但没有任何内容添加到数据库中。

有没有办法在不向表示层添加代码的情况下获得这种行为?

更新:OnValidate()和函数 都是InsertParent()从 DataContext 的SubmitChanges()函数中调用的。InsertOnSubmit()我怀疑这是我正在尝试做的事情的固有困难- DataContext在将现有更改提交到数据库的过程中不允许插入其他对象(例如通过)。

理想情况下,我希望将所有内容都保留在一个事务下,这样,如果在插入/更新期间发生任何错误,数据库中实际上不会发生任何变化。因此,我尝试模仿 SQL 触发器功能,允许通过对 DataContextSubmitChanges()函数的一次调用自动插入子记录。

0 投票
1 回答
766 浏览

wpf - 在 WPF 中的窗口数据上下文中排序

与此相关的另一个问题。

我有一个List<SortableObjects>就是DataContext我的 MainWindow。我使用该列表来填充 aListBox和 a ComboBox。当我对项目进行排序时, theComboBox和 theListView都可以更新。但现在我需要ComboBox以不同于ListView. IE 如果对象是 Person,在 中ComboBox,我需要按 LastName 对它们进行排序,但在 中ListView,按生日对它们进行排序。我怎样才能做到这一点?

谢谢!

0 投票
1 回答
1255 浏览

binding - 将组合框绑定到不同的 DataContext

组合框项目取自一个表,一个字段,在其上进行绑定。在数据库中保存另一个表中的选定项目后,我希望选定的项目是已保存的项目。但所选项目丢失。所以,我的问题是:我可以将组合框绑定到两个 DataContexts 还是另一个解决方案?

举一个更清楚的例子:组合框项是从数据源中获取的预定义值,并且必须保存所选值并在界面上显示。因此,据我所见,必须是与预定义值的绑定,以及与保存的值的绑定,以建立与所选项目的连接。

有什么建议吗?

0 投票
1 回答
261 浏览

silverlight - StackPanel 未更新

添加新项目时,直接绑定的 ObservableCollection 不更新 StackPanel 时遇到问题。任何初始项目都会正确显示。只有稍后添加的项目无法显示。XAML:

我正在使用 Prism MVVM,所以我绑定到我的 ViewModel,它有一个属性:

基本转换器和绑定正在工作,这可以通过我的初始项目正确显示的事实来证明。只有在初始绑定后添加到集合中的项目才不会显示。有任何想法吗?谢谢,瑞克