建议。为动态创建的用户控件持久化用户输入
我有一个ASP.NET创建用户向导.我包括的其他步骤之一是收集客户可能与同事的连接联系信息,以便所配置的帐户也可以为他们批量创建登录名.我用于ContactPerson的用户由几个文本框组成,以用于关键信息(名称,DOB,公司名称,地址和州). 我使用一个简单的按钮调用AddContacts方法,该方法创建了用于radpaneLitems的适当嵌套结构.一旦我添加了第一个项目,它可以正常工作,但第二个项目虽然通过后返回和缺乏数据持久性擦除第一个. 此用户控制映射到EF4实体,特别是该页面具有名为List ContactList的成员.我想问一下,当遇到帖子后背时,我从上一个联系人中收集的实体数据以及将用户控件(带有所述数据)重新添加到表单中的最佳方法是什么? 我愿意接受建议,我正在寻找最佳实践解决方案.预先感谢. 解决方案 直到您坚持数据之前,您可以使用httpcontext.current. session 对象存储此信息. ViewState (存储在页面上
22 2024-04-26
编程技术问答社区
反序列化时出现序列化异常
此代码从sqlite中启用对象.我从dbinarydata(blob)字段获得序列化对象.但是获取System.Runtime.Serialization.SerializationException:在解析完成之前遇到的流的结束.如何解决此问题? public void Dump() { try { const string databaseName = @"C:\Code\C#\WcfService\WcfService\mainDB.db3"; SQLiteConnection connection = new SQLiteConnection(string.Format("Data Source={0};", databaseName)); connection.Open(); try {
10 2024-04-26
编程技术问答社区
将一个 trie 保存到磁盘
这听起来像是一个简单的问题,但我不知道如何搜索其答案. 我在C#中有一个TRIE实现,该实现将存储一个字典文件中的约80K单词.加载所有这些单词(超过5分钟)需要一段时间.我想知道,"坚持"这些数据的最佳方法是什么,因此每次启动应用程序时我都不必重新加载所有单词? 谢谢. 解决方案 与所有其他性能问题一样,理想的解决方案将遵循您当前的解决方案和您提出的其他候选解决方案.瓶颈在哪里? I/O?借用文字?在Trie中形成链接?在不知道您的绩效目标,三位生的性质和目前存在的瓶颈的情况下,很难提出一个具体的建议. 要考虑的问题: 存储格式:文本?二进制? 持久的数据:Trie的整个结构(例如XML)或仅列出单词列表,依靠运行时代码将它们推入数据结构中的正确位置?标记与数据比率是多少?解析有多沉? 存储位置:db/flat-file/...? 增量加载:可能? 一种可能的策略:创建并坚持使用最常用的单词的1,000个(左右)的"最常见的单词"字典.将这些
16 2024-04-25
编程技术问答社区
为什么在我的WP7应用程序中,隔离存储没有持续存在?
我正在为我的应用程序使用sellatedStoragesettings.Applicationsettings.我的application_launch,application_activiviting,application_closing和application_deactivativatived方法如下: public IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; private void Application_Launching(object sender, LaunchingEventArgs e) { if (settings.Contains("myObjList")) { App.ObjList = (ObservableCollection)settings["myObjList"]
4 2024-04-25
编程技术问答社区
c#.NET USB设备的持久性标识符
我正在寻找C#中的一种方法,可以使用USB插槽的标识符(跨用户拔下枢纽/重新启动其计算机),更具体地说是SD卡读取器.驱动器字母并不总是分配给同一插槽,但是我需要一种方法来识别插槽.因为一旦我可以识别它,我就可以与驱动器字母建立连接. 所以我的问题: 这是可能的吗? 如果是这样,我将如何获得这些标识符? 解决方案 WMI类Win32_USBHUB. ManagementObjectSearcher sidQuery = new ManagementObjectSearcher("Select * From Win32_USBHub"); ManagementObjectCollection results = sidQuery.Get(); List deviceID = new List(); foreach (ManagementObject result in results) { deviceID.Add(resu
14 2024-04-23
编程技术问答社区
将类实例存储到文件/数据库的最佳方式
存储"文件/数据库"类实例的最佳方法是什么? 我们有一个名为命令的基类和派生类的负载. 用户通过将命令添加到图形设计器来创建这些类的实例 他们可以在哪里配置它们. (设置属性). 然后,我们需要一种将这些"命令"存储到文件而不会丢失的方法 任何信息. 一个想法是使用DB4O,但是GPL许可证不可接受. 任何建议或代码样本? 更新: (为了" De-Blurryfie"我的问题:P) 生成的代码可能看起来像: command[i++] = new DelayInSecondsCommand(2); command[i++] = new DaliRequestCommand(1, false, 254); command[i++] = new DaliRequestCommand(2, false, 254); command[i++] = new DaliRequestCommand(3, false, 254
4 2024-04-23
编程技术问答社区
更新和持久化数据集问题
我想我错过了STH.在这里很琐碎:我想更新数据集并将其推回数据库,但我一直在得到: 并发违规: UpdateCommand影响了0 预期的1个记录. 这是一些产生此错误的代码: public static void UpdateNorthWindWithDataset() { string connString = @"Data Source=localhost;Initial Catalog=NorthWind;Integrated Security=SSPI;"; using (SqlConnection conn = new SqlConnection(connString)) { conn.Open(); // Declaring a DataAdapter and initiating it with a Select
10 2024-04-22
编程技术问答社区
实体框架不保存/停止数据库的重建
我正在使用 http://http://msdn.microsoft.com/en-us/data/jj591506 .我正在处理下面的代码. using (var db = new DatabaseEntities()) { var section = new Section { SectionID = 1, SectionName = "Bob" }; db.Sections.Add(section); db.SaveChanges(); } 由于某种原因,此代码没有写入我的数据库.没有错误.您有想法我可以看什么还是可能的原因?这是示例在上面链接的MSDN页面上给出的几乎精确的副本. 这个问题看起来与此问题中发生的事情非常相似:实体框架实际上不是保存更改不幸的是,回答这个问题的人没有解释他们如何解决问题.他们解释说,他们检查了进入数据库的SQ
10 2024-04-22
编程技术问答社区
在没有ORM的情况下,使用SQL的规范模式,使用存储库模式
我一直在研究Martin Fowler在"存储库模式"部分下的企业体系结构模式中简要描述的规范模式,以及网络上的几个示例.但是,几乎所有的示例/描述都是通过使用规范对象执行的ORM和诸如OverSatiedby之类的方法来创建的(并且可能由ORM转换为SQL). 我可以看到如何使其适应与SQL一起使用,但是由于通常缺乏SQL示例,我想知道人们是否正在使用SQL数据访问层和存储库模式的这种模式,以及他们的经验/如果有的话,就可以使用它,或者如果有的话,可以更适合该任务. 解决方案 使用干净的体系结构,您有这些限制: 规格写在应用程序或域层中 数据库实体和SQL仅在基础结构层中允许 因此,您需要编写规格 不使用SQL和 基于域实体. 如果您不使用ORM,则缺少规格模式工作的缺少件是从规格和域实体到SQL和数据库表的映射. 实体框架根据约定,属性或流利的api进行操作. 您可以 查看提供此功能集的其他库或 自己实施某种抽象或 断开
2 2024-04-21
编程技术问答社区
我怎样才能在C#中覆盖反序列化
我有一个课程会在随着时间的流逝中进行某些版本的变化. 作为我应用程序启动的一部分,该类内部的数据被序列化和应对序列化.我遇到的问题是,如果我通过添加更多属性来更新课程,然后启动应用程序,旧数据无法正确加载. 我要做的是覆盖避免序列化步骤,我不介意手动从XML重建对象,因为我存储了一个版本号,并且可以使用它来递归更新对象的版本. 我可以实现一个接口,还是我可以在某个地方设置的属性,可以做到这一点? 如果您想不出一种做我想做的方法,还有其他选择吗?例如,我正在加载XML版本中可能不存在的属性的默认值. 解决方案 通常用于版本,您可以将OptionalField属性用于可能导致兼容性问题的新添加成员.在序列化期间,如果成员未序列化,则将成员的价值视为null而不是抛出例外. 另外,请看一下IDeserializationCallback.OnDeserialization接口,该接口允许您自定义避难所. 其他解决方案 实施. 其他解决方案 如果是XM
10 2024-04-20
编程技术问答社区
在MS Entity Framework中是否可以查询到新添加的对象?
有没有一种方法可以在实体框架中查询或仅访问新添加的对象(使用objectContext.addobject方法)?我的意思是,尚未使用Savechanges 保存到数据存储的情况 我知道查询被转换为基础SQL并针对数据存储执行,并且还没有这个新对象.但是无论如何,我很好奇 - 如果没有得到任何支持,那么从理论上讲,这也许是可能的.如果不是这样,开发人员如何处理?手动跟踪新对象并使用LINQ对象查询它们? 同样的问题也适用于linqtosql. 解决方案 在EF中,如果您使用此代码,则您的所有实体已经在上下文中加载(包括新添加的实体): context.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Unchanged).Select(o => o.Entity).OfType() 其他解
6 2024-04-20
编程技术问答社区
有可能在C#中创建有状态的网络服务吗?
我现在有这样的东西: public class Service1 : System.Web.Services.WebService { [WebMethod] public string Method1() { SomeObj so = SomeClass.GetSomeObj(); //this executes very long time, 50s and more return so.Method1(); //this exetus in a moment } [WebMethod] public string Method2() { SomeObj so = SomeClass.GetSomeObj(); //this executes very long time, 50s and more return so.Method2(); //this
10 2024-04-20
编程技术问答社区
持久性和领域事件与持久性无知的对象
我一直在研究与域事件.我真的很喜欢这些事件提供的关注点.我遇到了坚持域对象和提高域事件的顺序的问题.我想在域对象中提出事件,但我希望它们是持久性无知的. 我已经创建了一个基本ShoppingCartService,使用此Checkout方法: public void Checkout(IEnumerable cart, Customer customer) { var order = new Order(cart, customer); _orderRepositorty.Add(order); _unitOfWork.Commit(); } 在此示例中,Order的构造函数将提出OrderCreated事件,该事件可以由某些处理程序来处理.但是,我不希望当实体尚未持续或持续以某种方式失败时提出这些事件. 要解决这个问题,我已经找出了几种解决方案: 1.提高服务中的活动: 我可以在服务中提出事
12 2024-04-19
编程技术问答社区
用 "MVVM "的方式保存和加载数据?
我目前使用Telerik提供的一些控件从事C#WPF项目,我正在尊重MVVM模式: 包含数据的模型 a ViewModel将数据呈现到视图 显示数据的视图 当然,某些模型可以重复使用并以几种视图显示(在我的情况下,数据可以是不同图表上显示的形状的内容). 现在我开始设计如何保存数据.我的目标非常简单:当用户离开应用程序并返回时,所有视图必须在内容,颜色,字体,大小,空间中的位置方面相同... 保存模型仅覆盖内容部分.您将如何保存显示属性,例如颜色,字体,空间中的位置,尤其是当几个视图依赖相同模型时?我应该使用绑定并将所有属性从视图移至模型?冒着模型复杂性将大大增加的风险? 您是否有任何解决方案,可以将UI属性与模型分开? 在如何保存和加载数据" MVVM方式"上还有什么最佳练习? 预先感谢. 解决方案 i在应用程序设置中保存这样的用户选项.如果您不熟悉它们,则可以在private void LoadSettings(MainW
8 2024-04-18
编程技术问答社区
C#, Unity-最方便快捷的方式是在场景之间持久化/访问/修改数值?
我在寻找答案,但仍然不知所措.我有一些字符生成器,​​然后创建,然后保存玩家字符变量.它们被保存到一个新的脚本" PlayerCharacterData"中,该脚本是对象字符Data的组成部分.该对象具有dondestroyonload,因此它仍然存在于其他场景.生成字符后,游戏将字符数据加载到该脚本中,当我切换场景时,数据将从二进制文件正确加载(前面序列化). 但是现在我有了这个核心,我需要我的众多UI对象来加载来自" PlayerCharacterData"类的数据,因此UI可以填写所有字段,等等.后来的整个游戏将取决于" Player Characterdata"的可变值. 这是我的PlayerCharacterData脚本的一部分: public class PlayerCharacterData : MonoBehaviour { void Awake(){ DontDestroyOnLoad (this); // keeps the obj
18 2024-04-17
编程技术问答社区
MappingException: No persister for-NHibernate-Persisting an Adapter
好吧,我搜索了很多谷歌,并找到了同样的建议(将HBM设置为嵌入式资源,在Hibernate.cfg等上添加HBM等),尽管如此,我仍然没有得到. 让我解释一下:我为机票门设备编写了一个通信DLL,在那里我有一个配置模型类,我用来通过TCP/IP配置该设备.但是现在,我必须将这个对象坚持在DB上,因此我在模型中写了一个适配器,将一个适配器粘在另一个.这样,我有一个用于配置模型的适配器,该模型具有ID,包括日期等.让我们看看: DeviceConf模型类: public class DeviceConf : BaseModel // which have ID, IncludedDate, etc { private TGCommHelper.Entities.Configuration.TicketGateConfig _conf; public TGCommHelper.Entities.Configuration.TicketGateConfig con
22 2024-04-16
编程技术问答社区
在.NET中存储数据的方法
我正在寻找将数据存储在.NET中的Windows表单应用程序中的方法. 我想使系统的输入数据持续存在,因此,当我关闭程序并再次打开程序时,将检索数据. 除了创建链接的数据库外,还有哪些执行此操作的方法? 很乐意赞赏示例. 解决方案 有数十种存储数据的方法.它完全取决于什么数据.是: 只有几个配置值?使用内置设置库. 机器范围的配置?使用注册表. 交易?使用关系数据库. 相关但不交易?使用SQLITE或SQLCE等轻量级数据库. 结构但无关?使用XML或JSON文件. 某种结构化且体积较高?使用NOSQL解决方案. 等等...每个存储要求都有不同的解决方案,许多项目一次都多于一个. 其他解决方案 一种简单的方法是使用XML. 其他解决方案 如果您的数据不是任务至关重要(例如用户首选项),则可以将对象序列化以归档,并在下次加载应用程序时将其删除.
14 2024-04-16
编程技术问答社区
RavenDB如何冲水?
我正在使用Ravendb嵌入.作为我的分解测试的一部分,我想检查对象.当我在对象上进行保存时,然后检索它,除非我处置连接,否则找回它. 这对我不起作用,因为没有返回文件 using (var session = _dataDocumentStore.Instance.OpenSession()) { session.Store(file); session.SaveChanges(); } .... using (var session = _dataDocumentStore.Instance.OpenSession() ) { return session.Query().ToList(); } 我创建了一种齐平方法,该方法处理和重新创建了有效的嵌入式库库店,但是由于这种感觉,我可能会以错误的方式处理事情: public static IDocumentStore Initi
14 2024-04-15
编程技术问答社区
WinForms-哪种方法最容易持久化一些数据?
只是构建我的第一个Winforms应用程序. 问题 - 在应用程序使用之间保存一些数据的最简单/最佳方法是什么(例如,在这种情况下具有状态和日期/时间列表)?我认为对数据库没有任何需求. 例如 *只是存储最简单的文本文件吗? *或将XML文件存储在dotnet中同样容易 * Windows注册表如何 - 这通常要避免?它的使用是否兼容所有版本,包括Windows 7 *数据库 - 可能在这里过度杀伤 *也许是广泛使用的库? 谢谢 解决方案 在.NET中存储到XML非常容易,尤其是如果您确实只是存储URL和时间戳.您可以创建一个自定义类以保存数据...在运行时,在应用程序中操纵该类的实例. 是时候保存时,将对象(s)序列化为XML ...当应用程序以后需要还原数据时,请进行验证. MSDN具有简单的 warkthrowhough "> walkthrough .. P> 就像Quintin一样,值得注意的是,使用SQL Server Compact或其他一
8 2024-04-15
编程技术问答社区
使用和持久化枚举的最佳实践
我在这里看到了几个问题/讨论有关处理和坚持枚举的最佳方法(例如持续存在适用于枚举的数据,如何坚持使用nhibernate 的枚举),我想问一般的共识. 特别是: 这些值应该如何在代码中处理? 应该如何将它们坚持到数据库(作为文本/数字)? 不同解决方案的权衡是什么? 注意:我将最初包含在此问题中的解释移至答案. 解决方案 我试图总结我的理解.如果您有任何更正,请随时编辑.因此,它去了: 代码 在代码中,应使用语言的本机枚举类型(至少在Java和C#中)处理枚举,或者使用这两个之间的选择取决于要附加多少其他功能: 如果您想将大量功能放入枚举(这是好的,因为您始终避免使用切换()),通常会更合适. 另一方面,对于简单的枚举价值,该语言的枚举通常更清晰. 特别是,至少在Java中,枚举不能从其他类中继承,因此,如果您有几个具有相似行为的枚举,您想将其放入超级类中,则不能使用Java的枚举. 持续的枚举 为了坚持枚举,每个枚举值
16 2024-04-14
编程技术问答社区