Tag: c#

尝试保存更新时,由于相同的主键而附加实体时出错

我试图保存对现有数据库条目的更新,但是当我这样做时,我收到错误: 附加“FFInfo.DAL.Location”类型的实体失败,因为同一类型的另一个实体已具有相同的主键值。 如果图中的任何实体具有冲突的键值,则在使用“附加”方法或将实体的状态设置为“未更改”或“已修改”时,可能会发生这种情况。 这可能是因为某些实体是新的并且尚未收到数据库生成的键值。 在这种情况下,使用“添加”方法或“已添加”实体状态来跟踪图形,然后根据需要将非新实体的状态设置为“未更改”或“已修改”。 这是我的控制器代码。 我正在使用的保存方法与我在其他几个方面使用的保存方法相同,可以毫无问题地更新数据。 [HttpPost, ValidateAntiForgeryToken] public ActionResult EditLocation(AddEditLocationVM model, HttpPostedFileBase MapFile) { try { using (var db = new GeographyContext()) { model.Sections = new SelectList(db.Sections.Where(s => s.ID > 1).OrderBy(s => s.Title), “ID”, “Title”).ToList(); model.GeographyTypes = new SelectList(db.GeographyTypes.Where(gt => gt.SectionID == model.Section).OrderBy(gt => gt.Name), “ID”, “Name”).ToList(); model.ParentLocations = new SelectList(db.Locations.Where(l => l.SectionID […]

.NET中是否有OpenFileOrFolderDialog对象?

是否可以使用OpenFileDialog类选择文件OR文件夹? 它似乎只允许选择文件,如果您选择一个文件夹,然后选择打开它将导航到该文件夹​​。 如果OpenFileDialog不能用于此,那么我应该使用另一个对象吗? 编辑 :场景是我有一个工具,可以上传一个…许多文件或文件夹。 我需要能够提供像OpenFileDialog这样的对话框,允许用户选择文件,文件夹或其组合。 我知道FolderBrowseDialog ,在这种情况下,这不是答案。

无法从程序集加载“ADODB.FieldsToInternalFieldsMarshaler”类型

我有以下代码: MAPITable mt = rStores.MAPITable; Recordset rs = new Recordset(); rs = mt.ExecSQL(@”SELECT EntryID, “”http://schemas.microsoft.com/mapi/proptag/0x0FF60102″” As PR_INSTANCE_KEY from Name”); while (!rs.EOF) { var fields = ((dynamic)rs.Fields); for (int f = 0; f < fields.Count; f++) { var field = fields[f]; var name = field.Name; var value = field.Value; } Debug.Print(rs.Fields["EntryID"].Value); Debug.Print(rs.Fields["PR_INSTANCE_KEY"].Value); rs.MoveNext(); 当我尝试访问记录集字段时,我在主题中得到上述错误。 我在这里看到了问题,但这对我没有帮助。 更新 […]

可以将名为Tuple的C#用作MVC页面模型类型吗?

在C#7中,您可以使用命名元组: var foo = (Name: “Joe”, Age: 42); 如果我使用以下方法将其传递给MVC模型: return View(foo); 那么应该在cshtml文件中使用什么语法来声明模型? 虽然这不起作用,但像…… @model (string Name, int Age);

使用Selenium单击伪元素

我正在尝试使用Selenium来点击一个:: after伪元素。 我意识到这不能通过WebDriver直接完成,但似乎无法通过Javascript找到一种方法。 这是DOM的样子: Accounts ::after 这就是上面元素的样子。 对象的左侧是“按钮”元素,而后面元素是右侧,带有箭头,单击时会显示下拉菜单。 正如您所看到的那样,右侧没有任何标识符,这部分地使得这很难做到。 我已经在stackoverflow中看到了这两个链接,并试图将答案组合起来形成我的解决方案,但无济于事。 使用JavaScript单击Selenium WebDriver中的元素 使用JavaScript在Selenium WebDriver中定位伪元素 这是我的尝试之一: string script = “return window.getComputedStyle(document.querySelector(‘#ext-gen33′),’:before’)”; IJavaScriptExecutor js = (IJavaScriptExecutor) Session.Driver; js.ExecuteScript(“arguments[0].click(); “, script); 我收到此错误: System.InvalidOperationException: ‘unknown error: arguments[0].click is not a function (Session info: chrome=59.0.3071.115) (Driver info: chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1 x86_64)’ 我也尝试使用Selenium中的Actions类来引用鼠标左侧,类似于这个答案 。 我想这可能是因为我不知道测量的偏移是什么,文档似乎没有给出任何指示。 我认为它是以像素为单位? Actions build = […]

将IList 转换为IList 在运行时失败

我有以下简短的C#程序: IList listString = new List(); IList listObject; listObject = listString; 这个程序不编译。 最后一行导致以下编译错误: 无法将类型’System.Collections.Generic.IList’隐式转换为’System.Collections.Generic.IList’。 存在显式转换(您是否错过了演员?) 所以,我添加了演员: listObject = (IList)listString; 现在程序正确编译,但在运行时失败。 InvalidCastException并显示以下消息: 无法将类型为’System.Collections.Generic.List’1 [System.String]’的对象强制转换为’System.Collections.Generic.IList’1 [System.Object]’。 强制转换是非法的,应该被编译器捕获,或者它是合法的,不应该在运行时抛出exception。 为什么行为不一致? 澄清:我不是在问为什么演员会失败。 我理解为什么这样的铸造有问题。 我问为什么演员表只在运行时失败。

按名称呼叫财产

我有一个包含100多个唯一命名属性的类和20多个子类,有时在列表中。 以下是我的意思的大大简化的说明: public class classA { public String PropertyA1 { get; set; } public int PropertyA2{get;set;} public List myList; public classC myClass { get; set; } public void SetProperty(String PropertyName) { // Match property name to property in this class or child class. } } class classB { public String PropertyB1 { get; set; } […]

减去’DateTime’

我想从DateTime减去。 例: date1 = 13/01/2004 12:20:00 result = Subtract(date1-15); 预期产量: 13/01/2004 12:05:00 我该怎么做呢?

如何在考虑网络和移动应用的情况下实现桌面应用程序开发?

我的任务是制作一个具有’性感’**外观的桌面应用程序。 我打算用WPF来实现这个目标。 其中一个要求是桌面应用程序稍后将扩展为ASP.NET MVC Web应用程序,然后扩展到移动(可能是Android第一)应用程序,同时保持相同的外观和感觉。 **在这种情况下,“性感”意味着滑动菜单,以及一般的现代外观和感觉 考虑到这一点,如果我想重用组件(和/或)样式,在开始桌面UI设计时最好的方法是什么? 例如,在创建桌面应用程序时,我将使用XAML作为UI,但考虑到应该看起来与桌面相同的应用程序的Web版本,我应该/可以使用HTML / CSS吗? 即使这么想也是荒谬的吗?

在ASP.NET中的代码隐藏中读取动态生成的HTML元素值

我有一个asp.net页面,我有以下标记。 基本上,这个标记是通过从表中读取记录并循环遍历代码来生成的。 对于表中的每条记录,都会有一个div块。 基本上,此表单用于读取/显示用户的设置。 设置条目存储在表格中。 Name Domain name URL Some other value is enabled ? 每个输入元素的id都是唯一的。 现在在代码隐藏中,我想读取每个输入元素的值以保存用户所做的更改。 我怎样才能阅读这里的元素? 由于标记在代码隐藏中生成为字符串并附加了外部div的INNER HTML,因此我无法读取像我们在IDE中拖放的控件那样的值。