Tag: datacontext

使用Linq to SQL进行multithreading处理

我正在构建一个应用程序,它要求我使用DataContext的内部线程。 我的应用程序不断抛出InvalidOperationException类似于: There is already an open DataReader associated with this Command which must be closed first ExecuteReader requires an open and available Connection. The connection’s current state is connecting 这些例外是间歇性的。 这是我的代码片段: var repo = new Repository(); var entities = repo.GetAllEntities(); foreach (var entity in entities) { ThreadPool.QueueUserWorkItem( delegate { try { ProcessEntity(entity); } catch […]

在Linq to SQL中处理DataContext后无法访问相关数据

重申了我的问题,旧文本如下 由于我仍然希望得到答案,我想重申我的问题。 Image我有一个带有两个列表的GUI,一个列表显示数据库tblOrders的所有条目列表,另一个列表显示每个订单中的项目。 我可以使用Linq2sql或EF从数据库中获取所有订单,如下所示: using (DataClasses1DataContext DataContext = new DataClasses1DataContext()) ListOfOrders = DataContext.tblOrder.ToList(); 我可以在列表或datagridview显示这些顺序。 然后选择其中一个作业,我想从表tblItems访问实体集合。 我可以这样做: ListOfOrders.First().tblItems.toList(); 除了我不能,因为我需要已经处理的DataContext 。 这在某种程度上是有道理的,因为我无法保证自从我检索ListOfOrders. So ideally I would like to check if there has been an addition to a tblOrder.tblItems以来没有添加到该订单的新项目ListOfOrders. So ideally I would like to check if there has been an addition to a tblOrder.tblItems ListOfOrders. So ideally […]

Linq和DataContext

每个应用程序只有一个DataContext并通过单例共享它是否可以? 我问这个因为我想在每种forms都有DataContext,但我意识到,如果我在一个DataContext中更改了一些enity,我可以刷新它,如果之前使用的话。 例如form1: db = GetContext() item=(from p in db.Table where p.id=1 select p) 另一种forms db = GetContext() item=(from p in db.Table where p.id=1 select p) item.value=”test” 回到我必须做的原始表格 db.Refresh(RefreshMode.OverwriteCurrentValues, item) 即使我做了一个新的 item=(from p in db.Table where p.id=1 select p) (没有刷新)该值将不会更新 DataContext线程是否安全?

如何在WinRT中使用INotifyPropertyChanged?

我是一个新手,只是学习DataContext和MVVM模型的基础知识。 我现在有一个网格绑定到一个实现INotifyPropertyChanged的视图模型对象,但是看起来UpdateSourceTrigger (所有WPF教程告诉我使用它)不适用于WinRT / Metro Style应用程序! 那我如何实现INotifyPropertyChanged呢? 我在这里的绳索尽头。 我花了将近一天的时间在最基本的应用程序示例上,只是在点击某些内容后尝试更新网格。 到目前为止,我设法做到这一点的唯一方法是创建一个全新的视图模型实例并重新分配我知道错误的DataContext 更新: 我取得了一些进展,但事情变得非常奇怪。 我有一个视图模型,带有一个通用的项目列表。 项目列表与PropertyChangedEventHandler连接。 如果我用新的集合替换整个集合,listview会更新。 model.Items = new List{ new DataItem{ Title = “new item” }}; 这导致具有上述项目的一个项目列表。 但是,如果我尝试添加项目,则没有任何反应 model.Items.Add(new DataItem{ Title = “added item” }); 我也尝试创建一个添加项目并专门解雇PropertyChanged的方法,但这也不起作用 这就是它变得奇怪的地方。 接下来我尝试了这段代码。 model.Items.Add(new DataItem { Title = “added item” }); model.Items = new List { new DataItem { Title […]

Linq to SQL存储库应该实现IDisposable

在过去的几天里,我一直在用Linq搜索关于存储库模式的信息。 那里有很多信息,但它经常是矛盾的,我仍然在寻找一个明确的来源。 我仍然不确定的一件事是存储库是否应该实例化它自己的DataContext并使用SubmitChanges方法,或者是否应该注入DataContext并在外部处理提交。 我已经看过这两个设计,但对推理没有真正的评论。 无论如何,以下模式很常见 class Repository { DataContext db = new LinqDataContext(); public IEnumerable GetAll() { … } public T GetById() { … } … etc public void SubmitChanges() { … } } 所以我的主要问题是,通过上面的实现,为什么存储库不需要实现IDisposable? 我已经看到上面几百个例子,并且它们似乎都没有打扰处理DataContext。 这不是内存泄漏吗?

如何为ViewModel中的DataTemplate中创建的View设置DataContext

对此已有疑问,但他们没有回答我的问题。 例如: 正如您所看到的,我正在尝试为创建的View设置DataContext,希望它将使用用于创建它的ViewModel。 但是当我单步执行代码时,DataContext始终为null。 我怎样才能实现我想要的目标? 谢谢

为什么我的交易没有升级到DTC?

我的机器上禁用DTC。 我的理解是这个代码应该失败,因为它在同一个事务中使用了两个数据上下文。 那么,它为什么有用呢? (注意:我尝试使用.NET 3.5和.NET 4.0。) using (TransactionScope transactionScope = new TransactionScope()) { UpdateEta(); UpdateBin(); transactionScope.Complete(); } 以下是调用的DAL方法: public static void UpdateBin(Bin updatedBin) { using (DevProdDataDataContext dataContext = new DevProdDataDataContext(ConnectionString)) { BinRecord binRecord = (from bin in dataContext.BinRecords where bin.BinID == updatedBin.BinId select bin).FirstOrDefault(); binRecord.BinID = updatedBin.BinId; binRecord.BinName = updatedBin.BinName; dataContext.SubmitChanges(); } } public static […]

如何从DataContext的跟踪机制中分离LINQ-to-SQL数据对象?

在询问了这个问题之后 ,我被告知Table.Attach()方法是如何工作的,我还有另外一个问题。 如何从DataContext的状态跟踪机制中分离LINQ-to-SQL数据对象? 基本上,我想拉一条记录并更改记录上的数据。 但是,当我在同一个DataContext实例上调用SubmitChanges()时,除非我明确调用Attach()否则我不希望更新记录。 这是如何完成的?

Ninject和DataContext处理

我正在使用Ninject从内核中检索我的DataContext,我想知道Ninject是否自动处理DataContext,或者他如何处理dispose()行为。 根据自己的经验,我知道处理datacontext非常重要,每当你创建DataContext的直接对象时(如:new DataContext()),你应该使用using()块。 我的问题是:当我从内核检索我的DataContext时,我是否仍然必须使用using()块? 或者Ninject是否为我解决了这个问题?

误解数据绑定基础和DataContexts – 长篇大论

我一直在几个简单的情况下使用数据绑定,取得了相当不错的成功。 通常我只使用INotifyPropertyChanged来启用我的代码隐藏来修改屏幕上的GUI值,而不是为所有内容实现依赖项属性。 我正在使用LED控件来了解有关用户控件中数据绑定的更多信息,并被迫使用依赖属性,因为VS2008告诉我必须这样做。 我的应用程序很简单 – 我有一个窗口,显示几个LED控件,每个控件上面都有一个数字,可选择一个控件。 LED应该可以使用默认颜色进行定义,以及更改状态。 我开始写一个LED控制,看起来非常好。 首先,我开始使用这样的代码: LED.xaml 这样可以很好地吸收LED。 然后我将LEDSize,LEDLabel和LEDColor绑定到Ellipse属性,方法是设置this.DataContext = this就像我一直这样: LED.xaml.cs /// /// Interaction logic for LED.xaml /// public partial class LED : UserControl, INotifyPropertyChanged { private Brush state_color_; public Brush LEDColor { get { return state_color_; } set { state_color_ = value; OnPropertyChanged( “LEDColor”); } } private int led_size_; public […]