NHibernate:保存瞬态实例时,身份ID如何更新?

如果我使用session-per-transaction并调用: session.SaveOrUpdate(实体) 更正: session.SaveOrUpdateCopy(实体) ..and entity是identity-Id = 0的瞬态实例。 以上行是否会自动更新实体的Id,并使实例持久化? 或者它应该在transaction.Commit上这样做吗? 或者我必须以某种方式明确地编码? 显然,数据库行的Id(新的,因为瞬态)是自动生成的并保存为某个数字,但我在这里谈论的是实际的参数实例。 哪个是业务逻辑实例。 编辑 – 跟进,相关问题。 映射: public class StoreMap : ClassMap { public StoreMap() { Id(x => x.Id).GeneratedBy.Identity(); Map(x => x.Name); HasMany(x => x.Staff) // 1:m .Cascade.All(); HasManyToMany(x => x.Products) // m:m .Cascade.All() .Table(“StoreProduct”); } } public class EmployeeMap : ClassMap { public EmployeeMap() […]

WPF Datagrid单元格,cellinfo和selectedcells +自定义选择

我想在WPF数据网格中操作选择,但是我对访问实际单元格并设置焦点并将它们标记为已选中存在问题。 任何人都可以解释一下:为什么没有一些简单的方法从** DatagridCellInfo **获取** DatagridCell **? 为什么几乎没有人在使用WPF数据网格? (我没看到很多Q / A投票) 有没有一种简单的方法如何为WPF数据网格创建自己的选择模式? 我的问题是什么 我想在不按Ctrl的情况下选择更多单元格(逐个)时在WPF Datagrid上进行自定义选择 。 我做得很好但是当我想取消选择一个选定的单元格时,我遇到了问题 – 只需单击它即可。 从列表中删除它不是问题。 问题在于,当它被点击时,它会成为焦点而且是高亮的,所有其他被选中的人都会关闭他们的暮色。 如果我选择另一个未选中的单元格,则所有选定的单元格将再次正确显示。 问题只出在取消选择中。 我的代码: XAML: 我已经在datagrid中填充了我制作的一些随机示例类对象的列表。 C#: private void DataGridCell_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { DataGridCell cell = sender as DataGridCell; DataGridCellInfo cellInfo = new DataGridCellInfo(cell); if ((cell.IsSelected)||(selectedList.Contains(cellInfo))||(selectedCellsList.Contains(cell))) { selectedList.Remove(cellInfo); selectedCellsList.Remove(cell); cell.IsSelected = false; mydatagrid.CurrentCell = selectedList[0]; […]

App_Global.asax.compiled和App_Global.asax.dll丢失了吗? WebApi .NET 4.5项目

在我们使用WebAPI构建“简单”API的冒险过程中,我们已经像任何项目一样拥有了相当多的问题,但是我无法找到任何可以解释以下行为的资源: 细节 : Visual Studio 2013 with Update 2(但是,在更新之前,这是相同的) Windows Server 2008 R2 Web API 5.1.2 该问题似乎与“发布”命令有关,特别是“预编译”选项。 通过IIS Express运行时,我们看不到任何问题。 如果我们发布一次,则无法在bin目录中包含App_Global.asax.compiled和App_Global.asax.dll。 如果它正在更新应用程序的现有实例,它实际上将删除现有的两个文件。 注意:无论WebPublish或FileSystem Publish如何,都会发生这种情况 加载到IIS时,此行为导致404.0错误,而不是我们预期的201。 但是,如果我第二次发布没有更改以前的配置文件/配置,它会添加两个。 有一段时间,我们认为这是权限问题,并没有看到一致的行为。 这种情况发生在具有相同行为的所有开发机器上。 我们已经看到有关神秘行为的post,但从我们的分析来看,这是问题的根源。

在WPF中的网格中的单元格之间拖放自定义控件

我有一些自定义控件,可以动态添加到自定义网格中。 这些控件可以跨越多个列和行(大小都相同)。 我想在行和列之间拖放。 我可以拖动单个控件,但它们可以无限制地移动到任何地方。 即使是离网。 我想这样做,所以它只能在网格内拖动并捕捉到它拖动到的列/行。 有没有简单的方法来做到这一点? 老实说,如果我能得到它已经结束的当前行/列,那么我需要做的就是将它的列/行设置为它们并且可能会这样做然后只是担心将它保留在网格中。

用于将XML文件读入DataTable的代码

我编写了下面的代码片段,它读取给定的xml文件并将内容写入数据表。 请不要建议使用LinqToXml,因为这是一个遗留应用程序。 // create the DataTable that will hold the data DataTable table = new DataTable(“ListOfPersonsWithInfo”); // open the file using a Stream using (Stream stream = new FileStream(fileNameWithAbsolutePath, FileMode.Open, FileAccess.Read)) { // create the table with the appropriate column names table.Columns.Add(“Name”, typeof(String)); table.Columns.Add(“ImagePath”, typeof(String)); table.Columns.Add(“Address”, typeof(String)); // use ReadXml to read the XML stream […]

如何从Windows服务访问localDB

我需要在本地使用数据库。 我已经使用Visual Studio 2012在(LocalDB)\ v11.0 Server中创建了数据库。从例如控制台应用程序连接时,一切正常。 但我的应用程序是Windows服务。 尝试连接到我的数据库输出: “… The login failed.Login failed for user ‘NT AUTHORITY\SYSTEM” 这有什么解决方案吗? 也许我应该考虑为它设置其他数据库服务器? 如果是,如何设置它以便它只在本地可见?

从C#中的ListView中删除项目

我需要从列表视图中删除项目,我要查找的代码将显示一个消息框以确认,如果没有选择项目,它将显示一个错误消息框 这是我的代码,它不起作用:( private void button2_Click(object sender, EventArgs e) { if (listView1.SelectedItems != null) { var confirmation = MessageBox.Show( “Voulez vous vraiment supprimer les stagiaires séléctionnés?”, “Suppression”, MessageBoxButtons.YesNo, MessageBoxIcon.Question ); if (confirmation == DialogResult.Yes) { for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].Selected) { listView1.Items[i].Remove(); i–; } } } } else { […]

处理异步方法的同步部分中的exception

我正在处理我开始的任务可能抛出的情况,同时仍然在初始线程上同步执行。 出于说明目的,这样的事情: static async Task TestAsync() { var random = new Random(Environment.TickCount).Next(); if (random % 2 != 0) throw new ApplicationException(“1st”); await Task.Delay(2000); Console.WriteLine(“after await Task.Delay”); throw new ApplicationException(“2nd”); } 从调用代码,我希望能够捕获任何exception,可能从同步部分抛出(即, await Task.Delay() )。 这是我目前正在做的事情: static void Main(string[] args) { try { var task = TestAsync(); if (task.IsFaulted) task.GetAwaiter().GetResult(); Console.WriteLine(“TestAsync continues asynchronously…”); } catch (Exception […]

如何表示当前的英国时间?

我在服务器和客户端之间转换日期时遇到了问题,两者都在德国运行。 客户端计算机上的区域设置可以设置为英国或德国。我从服务器接收CET格式的日期,我需要在UI上将此时间表示为英国时间。 例如,从服务器收到的时间,例如01/07/2010 01:00:00应该在UI上表示为01/07/2010 00:00:00。 我已经为此目的编写了一个转换器,但是在运行它时会产生2小时的时差。下面是代码,请帮忙吗? public class LocalToGmtConverter : IDateConverter { private readonly TimeZoneInfo timeZoneInfo; public LocalToGmtConverter() : this(TimeZoneInfo.Local) { } public LocalToGmtConverter(TimeZoneInfo timeZoneInfo) { this.timeZoneInfo = timeZoneInfo; } public DateTime Convert(DateTime localDate) { var utcKind = DateTime.SpecifyKind(localDate, DateTimeKind.Utc); return utcKind; } public DateTime ConvertBack(object fromServer) { DateTime serverDate = (DateTime)fromServer; var utcOffset = […]

来自Stream的位图:Bug?

我有一个非常奇怪的错误。 我需要缩小图像,缩小质量并转换为JPEG。 这一切都在我将文件保存在磁盘上时有效,但是当我将其保存到Stream时它不起作用。 System.Drawing.Bitmap bitmap = // valid Bitmap from Disk System.IO.Stream stream = new MemoryStream(); // JPEG Encoding System.Drawing.Imaging.ImageCodecInfo jpgEncoder = GetEncoder( System.Drawing.Imaging.ImageFormat.Jpeg ); System.Drawing.Imaging.Encoder encoder2 = System.Drawing.Imaging.Encoder.Quality; System.Drawing.Imaging.EncoderParameters parameters = new System.Drawing.Imaging.EncoderParameters( 1 ); System.Drawing.Imaging.EncoderParameter parameter = new System.Drawing.Imaging.EncoderParameter( encoder2, qualityLevel ); parameters.Param[0] = parameter; // Save downscaled on Disk and stream bitmap.Save( […]