我最近在MVVM WPF应用程序中使用了很多Entity Framework,但我遇到了一些问题.为了显示数据,我的视图模型使用了一个短暂的ObjectContext.这些视图模型将在长时间运行的过程中使用,因此我更喜欢使用短暂的ObjectContext来降低性能.
所以基本上它意味着我的实体在断开连接模式下使用.可以创建,查看,更新和删除这些entites.使用断开连接模式将更改保存回数据库没有问题.但是我发现了一个特殊情况,即没有保存更改,并且在调用SaveChanges()方法时没有出现错误.当我尝试更新具有集合属性的实体时会发生这种情况.实体的标量属性保持不变,但集合上的更改不会反映到数据库中,就好像它无法在重新连接时跟踪这些更改一样.
这是我的案例的示例代码,我在其中更改实体名称,然后将对象添加到其报表集合中.之后SaveChanges(),只有客户端名称已反映在数据库中.
this.Client.Name = "Test Client";
this.Client.Reports.Add(new Report { Name = "Test Report" });
using (ReportCompositionEntities entities = new ReportCompositionEntities(this.connectionStringName))
{
entities.Clients.ApplyCurrentValues(this.Client);
entities.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
所以我做错了什么或者EF在重新附加实体时根本无法跟踪这种变化?
我有一个React应用程序,其导航功能由react-router我在开发中运行webpack-dev-server并启用了历史回退选项.这是我在我的定义中的路线index.js
ReactDOM.render((
<Router history={browserHistory}>
<Route path="/" component={App}>
<IndexRedirect to="/intro" />
<Route path="/intro" component={Intro} />
<Route path="/device" component={Device} />
<Route path="/clothing" component={Clothing} />
<Route path="/build" component={Build}>
<IndexRedirect to="/build/pattern" />
<Route path="/build/pattern" component={Pattern} />
<Route path="/build/layout" component={Layout} />
<Route path="/build/color" component={Color} />
</Route>
<Route path="/capture" component={Capture} />
<Route path="/review" component={Review} />
</Route>
</Router>
), document.getElementById('app'))
Run Code Online (Sandbox Code Playgroud)
当我浏览链接时,一切正常,我可以看到嵌套的路由组件嵌套在其父路由组件中,如预期的那样.例如,当我导航到/build/color我可以看到我的App组件嵌套嵌套Build组件的Color组件.
它失败的地方是我尝试在嵌套路径中点击刷新按钮.React完全无法加载,我收到以下错误
获取http:// localhost:8080/build/app.js 404(未找到)
在我的应用程序中确实没有这样的文件,但我仍然感到困惑,为什么它会自动查找此文件而不是从根重新加载路由.请注意,在页面上点击刷新/device会没有问题.
如果您需要有关我的设置的更多详细信息,请告诉我.谢谢!
解:
我的webpack设置实际上是使用 …
routing http-status-code-404 reactjs react-router webpack-dev-server
简单的问题,是否有可能在我的GitHub上分叉一个Codeplex repo?
谢谢.
我有一个基于SVG的应用程序,大量使用转换,如翻译,旋转和缩放.虽然我在Firefox中没有问题,但在Chrome中,该transform-origin属性不会被考虑在内.它似乎应用了用户代理默认值0px 0px 0.
这是一个例子(JSFiddle):
<svg width="400" height="400">
<defs>
<rect id="shape" width="200" height="200"/>
</defs>
<g transform="translate(100,100)">
<use xlink:href="#shape" style="stroke: lightgray; fill: transparent;"/>
<ellipse cx="100" cy="100" rx="3" ry="3" style="fill: black;"/>
<g transform="translate(0,0) scale(0.5) rotate(45)" style="transform-origin: 100px 100px;">
<use xlink:href="#shape" style="stroke: black; fill: transparent;"/>
</g>
</g>
</svg>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,无论定义的原点如何,Chrome都会应用从形状左上角开始的所有变换,而Firefox则会考虑定义的原点.
我错过了一些关于如何transform-origin使用SVG的内容吗?
有没有人真正找到一种方法来解决这个问题而不用翻译补偿?
我有这样的模型:
public class Instrument
{
public string Id { get; set; }
public string Name { get; set; }
// About 100 other properties
}
Run Code Online (Sandbox Code Playgroud)
我从Entity Framework EDM中检索Instrument实例.
现在我想做的是能够创建自定义映射以将此数据集绑定到Excel ListObject.默认情况下,ListObject将显示Excel工作表中的每一列,但我只想显示某些属性并按特定顺序显示.
ExcelTools.ListObject instrumentsTable = this.Controls.AddListObject(tableStart, tableName);
instrumentsTable.DataSource = myEDM.Instruments;
// Custom mapping code...
Run Code Online (Sandbox Code Playgroud)
我试图使用SetDataBinding方法,但它抛出了数据绑定异常.
有人可以帮助我实现这一目标吗?
谢谢.
这是一个简单的问题:您将视图链接到视图模型的用途是什么?
基本上有两种常见的方法来实现,数据模板和视图模型注入(下面的示例).
我想知道的是为什么你喜欢一种方法而不是另一种方法,在这种情况下你使用它们.精确您使用的MVVM框架.
数据模板方式或"View Model first"方法(Resources.xaml):
<DataTemplate DataType="{x:Type my:PersonViewModel}">
<my:PersonView/>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
视图模型注入方式或"查看第一"方法(PersonView.xaml.cs):
[Import]
public PersonViewModel ViewModel
{
set
{
this.DataContext = value;
}
}
Run Code Online (Sandbox Code Playgroud) 使用Prism几周后,我经历过各种导航方法.但是仍然有一件事我无法通过Prism"开箱即用"实现:导航到视图模型实例.导航到视图模型或视图类型非常容易,但实际上无法导航到真实的视图模型实例.
例如,当我有一个不同的视图模型实例的列表(也是不同的类型)时,如果选择了一个并且我想在我的内容区域中显示它,除非我通过事件聚合发布更改而我不能实现它,否则我无法实现它想要这样,因为这让我在我的内容区域中遇到了一种观点.我想要做的是将视图模型实例注册到一个区域,因此视图可以从数据模板动态加载.
实际上我通过创建RegisterViewModelWithRegion作为RegionManager的扩展方法来实现这一点,它运行良好,但它不是很整洁,因为我必须手动查找我的应用程序资源,加载视图,附加我的视图模型实例然后添加对我所在地区的看法.
我真的觉得我在建筑中遗漏了一些东西,因为这种做法对我来说显而易见,但显然我找不到任何有同样关注的人.
非常感谢您的帮助和经验.谢谢.
我有一个参考Telerik组件的解决方案.引用的版本已安装在构建服务器上.问题是持续集成构建总是成功,直到我在解决方案和构建服务器上升级Telerik程序集.现在构建失败了,给出了经典:
无法解析此引用.
我检查了我的解决方案,一切都设置为引用特定版本.最令人惊讶的是,如果我在构建服务器上本地打开解决方案,一切都将构建没有问题......这意味着Telerik程序集已经以某种方式发布,但由于未知原因,当调用MSBuild来编译解决方案时通过构建服务,它不起作用.
有任何想法吗?
我有一个2012 SSIS项目,在项目级别定义了许多连接管理器.该项目还包括许多包含这些连接管理器的引用.现在我想将我的项目转换为部署模型,但向导指定我需要删除项目中的连接管理器,这意味着将连接管理器移动到包中.
如何将项目级连接管理器移动到我的包中?
我正在开发一个VSTO Excel项目,我遇到了一些管理Range对象的麻烦.
实际上,我需要知道当前所选范围是否与我存储在列表中的另一个范围重叠.所以基本上,我有2个Range实例,我想比较它们的位置.
这对我来说似乎很简单,但是对于所有Interop动态的东西,我对我应该依赖哪些数据感到困惑.
我有一个简单的页面与3 div相互叠加但我不能让中间内容div使用屏幕上可用的所有垂直空间.请注意,顶部和底部高度无法修复,并且必须与IE9兼容.
HTML
<div class="container">
<div>Top</div>
<div class="content">Middle</div>
<div>Bottom</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.container {
background-color: #dddddd;
}
.content {
height: 100%;
min-height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
我还把它放在Fiddle上来证明这个问题:http://jsfiddle.net/quaxkq40/
谢谢.
我正在学习单元测试最佳实践(特别感谢这篇文章:什么是良好的单元测试?),因为在我的项目中我们开始以一种无政府的方式进行单元测试.所以现在我必须从一开始就得到几乎所有应用强大的测试方法.
被引用的帖子没有回答的一个问题是我是否必须测试所有课程,甚至是没有特定功能的课程?
编辑:"没有功能"我指的是没有公共方法的类.例如,一个Person类,它只有2个自动实现的Name和Lastname属性.
我已经将图像资源集成到我的WPF程序集中很长一段时间了,但我从未真正找到过在我的MVVM应用程序中绑定它们的方法.
所以我想知道你们堆栈流用户是否可以在汇编资源方面分享他们自己的做法:
谢谢你的帮助 ;-)
mvvm ×3
wpf ×3
excel ×2
vsto ×2
.net ×1
c# ×1
codeplex ×1
connection ×1
css ×1
data-binding ×1
datatemplate ×1
deployment ×1
fork ×1
github ×1
html ×1
image ×1
interop ×1
msbuild ×1
navigation ×1
prism ×1
react-router ×1
reactjs ×1
reference ×1
resources ×1
routing ×1
ssis ×1
svg ×1
tdd ×1
tfs ×1
unit-testing ×1
viewmodel ×1