- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找有关将 Linq to Sql 与 WPF 一起使用的正确方法的好指南。
大多数指南只涉及最基本的知识,例如如何显示数据库中的数据,但我发现没有人涉及如何将数据存回数据库。你能回答或给我指出可以回答这些问题的指南吗?
我有一个单独的数据项目,因为相同的数据也将在网页中使用,所以我有存储库方法。这意味着我有一个使用 DataContext 的单独类,并且有像 GetAllCompanies() 和 GetCompanyById (int id) 这样的方法。
1) 在有集合的地方,最好返回一个 IQueryable 还是应该返回一个列表?
在 WPF 项目中,我看到了将集合包装在 ObservabgleCollection 中的建议。
2) 为什么我应该使用 ObservableCollection,即使是 Linq/IQueryable 我也应该使用它
linq 实体的某些属性应该可以在应用程序中编辑,因此我将它们设置为双向模式。这将更改 observableCollection 中的对象。
3) ObservableCollection 中的对象是否仍然是原始 linq 实体的实例,数据库中反射(reflect)的更改也是如此(调用 submitchanges 时)
我应该在存储库中有某种保存方法。但是我应该什么时候调用它呢?如果有人编辑了一个字段但决定不保存它,转到另一个对象并编辑它然后按保存,会发生什么情况。原来改的不也省了吗?它什么时候不再记得对 linq 实体对象的更改。我是否应该在每个方法中实例化 Datacontext 类,以便在完成时失去作用域。
4) 何时以及如何调用 SubmitChanges 方法
5) 我应该将 DataContext 作为存储库类的成员变量还是方法变量
要添加新行,我应该在事件中创建一个新对象("new"按钮推送),然后使用 repo 方法将其添加到数据库中。
6) 当我将对象添加到数据库时,ObservableCollection 中将没有新对象。我会以某种方式刷新吗?
7) 我不想在创建新对象时重复使用编辑窗口,但不确定如何从引用 ListView 中的所选项目动态更改为这个新对象。您可以指出任何示例。
最佳答案
很多问题!我会回答一些。
1) 只要您希望对其执行 LINQ 查询,请使用 IQueryable。使用“var”关键字而不是指定类型也是首选。
2) ObservableCollection 在集合中的项数发生变化时提供通知机制。这样,列表控件可以在集合更改时自行刷新。
注意:您仍然需要实现 INotifyPropertyChanged 接口(interface)来通知集合中各个对象的属性更改。
3) 我建议不要将 LINQ 实体直接存储到集合中。原因是,如果您想将更改传播回数据库,则必须保持创建该实体的 DataContext 打开。这使连接保持打开状态,不建议这样做。
4) 每当您想在数据库中进行更改时,创建一个新的 DataContext,选择您要更改的对象,更改它们的属性并调用 SubmitChanges() 方法。之后关闭 DataContext。
5) 如我所说,每当您想要从数据库中选择对象或将更改提交回数据库时,都创建一个新的 DataContext 实例。
关于c# - 在 WPF 中使用 Linq 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3045391/
我需要将文本放在 中在一个 Div 中,在另一个 Div 中,在另一个 Div 中。所以这是它的样子: #document Change PIN
奇怪的事情发生了。 我有一个基本的 html 代码。 html,头部, body 。(因为我收到了一些反对票,这里是完整的代码) 这是我的CSS: html { backgroun
我正在尝试将 Assets 中的一组图像加载到 UICollectionview 中存在的 ImageView 中,但每当我运行应用程序时它都会显示错误。而且也没有显示图像。 我在ViewDidLoa
我需要根据带参数的 perl 脚本的输出更改一些环境变量。在 tcsh 中,我可以使用别名命令来评估 perl 脚本的输出。 tcsh: alias setsdk 'eval `/localhome/
我使用 Windows 身份验证创建了一个新的 Blazor(服务器端)应用程序,并使用 IIS Express 运行它。它将显示一条消息“Hello Domain\User!”来自右上方的以下 Ra
这是我的方法 void login(Event event);我想知道 Kotlin 中应该如何 最佳答案 在 Kotlin 中通配符运算符是 * 。它指示编译器它是未知的,但一旦知道,就不会有其他类
看下面的代码 for story in book if story.title.length < 140 - var story
我正在尝试用 C 语言学习字符串处理。我写了一个程序,它存储了一些音乐轨道,并帮助用户检查他/她想到的歌曲是否存在于存储的轨道中。这是通过要求用户输入一串字符来完成的。然后程序使用 strstr()
我正在学习 sscanf 并遇到如下格式字符串: sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c); 我理解 %[^:] 部分意味着扫描直到遇到 ':' 并将其分配给 a。:
def char_check(x,y): if (str(x) in y or x.find(y) > -1) or (str(y) in x or y.find(x) > -1):
我有一种情况,我想将文本文件中的现有行包含到一个新 block 中。 line 1 line 2 line in block line 3 line 4 应该变成 line 1 line 2 line
我有一个新项目,我正在尝试设置 Django 调试工具栏。首先,我尝试了快速设置,它只涉及将 'debug_toolbar' 添加到我的已安装应用程序列表中。有了这个,当我转到我的根 URL 时,调试
在 Matlab 中,如果我有一个函数 f,例如签名是 f(a,b,c),我可以创建一个只有一个变量 b 的函数,它将使用固定的 a=a1 和 c=c1 调用 f: g = @(b) f(a1, b,
我不明白为什么 ForEach 中的元素之间有多余的垂直间距在 VStack 里面在 ScrollView 里面使用 GeometryReader 时渲染自定义水平分隔线。 Scrol
我想知道,是否有关于何时使用 session 和 cookie 的指南或最佳实践? 什么应该和什么不应该存储在其中?谢谢! 最佳答案 这些文档很好地了解了 session cookie 的安全问题以及
我在 scipy/numpy 中有一个 Nx3 矩阵,我想用它制作一个 3 维条形图,其中 X 轴和 Y 轴由矩阵的第一列和第二列的值、高度确定每个条形的 是矩阵中的第三列,条形的数量由 N 确定。
假设我用两种不同的方式初始化信号量 sem_init(&randomsem,0,1) sem_init(&randomsem,0,0) 现在, sem_wait(&randomsem) 在这两种情况下
我怀疑该值如何存储在“WORD”中,因为 PStr 包含实际输出。? 既然Pstr中存储的是小写到大写的字母,那么在printf中如何将其给出为“WORD”。有人可以吗?解释一下? #include
我有一个 3x3 数组: var my_array = [[0,1,2], [3,4,5], [6,7,8]]; 并想获得它的第一个 2
我意识到您可以使用如下方式轻松检查焦点: var hasFocus = true; $(window).blur(function(){ hasFocus = false; }); $(win
我是一名优秀的程序员,十分优秀!