在Startup.cs中添加DbContextOptions而不注册数据存储

我的问题是下面的代码在启动期间没有注册数据存储。 这是我从应用程序的响应中得到的特定“错误”语句: An unhandled exception occurred while processing the request. InvalidOperationException: No data stores are configured. Configure a data store by overriding OnConfiguring in your DbContext class or in the AddDbContext method when setting up services. Microsoft.Data.Entity.Storage.DataStoreSelector.SelectDataStore(ServiceProviderSource providerSource) 在ConfigureServices(IServiceCollection服务)中,我试图在lambda中为我的DbContext指定DbContextOptions。 码: services.AddEntityFramework(Configuration) .AddSqlServer() .AddDbContext( options => options.UseSqlServer(Configuration.Get(“Data:DefaultConnection:ConnectionString”)) ); 在我的DbContext中,我有一个构造函数,它将选项发送到base,代码: public MyContext(DbContextOptions options) : base(options) { } […]

如何使用JSON.NET反序列化日期(毫秒)?

我正在处理如下响应: {“id”:”https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P”, “issued_at”:”1278448832702″,”instance_url”:”https://na1.salesforce.com”, “signature”:”0CmxinZir53Yex7nE0TD+zMpvIWYGb/bdJh6XfOH6EQ=”,”access_token”: “00Dx0000000BV7z!AR8AQAxo9UfVkh8AlV0Gomt9Czx9LjHnSSpwBMmbRcgKFmxOtvxjTrKW1 9ye6PE3Ds1eQz3z8jr3W7_VbWmEu4Q8TVGSTHxs”} 我正在尝试将其反序列化为类似于以下内容的类: public class TokenResponse { public string Id { get; set; } [JsonProperty(PropertyName = “issued_at”)] public DateTime IssuedAt { get; set; } public string Signature { get; set; } [JsonProperty(PropertyName = “instance_url”)] public string InstanceUrl { get; set; } [JsonProperty(PropertyName = “access_token”)] public string AccessToken { get; set; } […]

证书安装安全警告解决方法?

我有一些C#4.0代码尝试将CA(.der编码)证书安装到当前(我的)用户的“受信任的根证书颁发机构”存储中。 我的小控制台应用程序默默地对其他商店运行,但是对于这个商店,会出现一个GUI弹出窗口“您即将从证书颁发机构安装证书… Windows无法validation证书是否实际来自…..你是否想要安装这个证书吗?“ 此消息框是一个问题,因为我们的想法是使用MSI自动部署应用程序,并在正确的位置静默获取正确的证书。 拥有模态框将导致自动部署失败。 如何在没有部署中断消息框的情况下完成此安装?

UI Thread .Invoke()导致句柄泄漏?

在什么情况下,在使用委托和.InvokeRequired时,从非UI线程更新UI控件可能会导致进程的句柄不断增加? 例如: public delegate void DelegateUIUpdate(); private void UIUpdate() { if (someControl.InvokeRequired) { someControl.Invoke(new DelegateUIUpdate(UIUpdate)); return; } // do something with someControl } 当在循环或定时器间隔中调用此方法时,程序的句柄会不断增加。 编辑: 如果以上内容被注释掉并修改如下: public delegate void DelegateUIUpdate(); private void UIUpdate() { //if (someControl.InvokeRequired) //{ // someControl.Invoke(new DelegateUIUpdate(UIUpdate)); // return; //} CheckForIllegalCrossThreadCalls = false; // do something with someControl } …然后句柄停止递增,当然我不想允许跨线程调用。 编辑2: 这是一个显示句柄增加的示例: […]

C#使用reflection获取不安全结构中的固定字段类型

我正在尝试使用一些固定字段来获取不安全结构的字段类型。 固定字段FieldType不返回实际类型。 [StructLayout(LayoutKind.Sequential, Pack = 1)] public unsafe struct MyStruct { public UInt32 Field1; public fixed sbyte Field2[10]; public UInt64 Field3; } void Test() { var theStruct = new MyStruct(); string output = “”; foreach (FieldInfo fi in theStruct.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance)) { output += fi.Name + “: ” + fi.FieldType.ToString() + “\r\n”; } } 输出: […]

De Bruijn算法二进制数字计数64位C#

我使用“De Bruijn”算法来发现大数(最多64位)的二进制位数。 例如: 1022具有10位二进制数字。 130具有8位二进制数字。 我发现使用基于De Bruijn的表查找使我有能力比传统方式(功率,方形……)计算x100倍。 根据该网站 ,2 ^ 6具有用于计算64位数的表。 这将是c#中暴露的表 static readonly int[] MultiplyDeBruijnBitPosition2 = new int[64] { 0,1,2,4,8,17,34,5,11,23,47,31,63,62,61,59, 55,46,29,58,53,43,22,44,24,49,35,7,15,30,60,57, 51,38,12,25,50,36,9,18,37,10,21,42,20,41,19,39, 14,28,56,48,33,3,6,13,27,54,45,26,52,40,16,32 }; (我不知道我是否正确地从该网站带来了桌子)然后,基于R ..评论在这里 。 我应该使用它来使用输入uint64号码的表。 public static int GetLog2_DeBruijn(ulong v) { return MultiplyDeBruijnBitPosition2[(ulong)(v * 0x022fdd63cc95386dull) >> 58]; } 但是c#编译器不允许我使用“ 0x022fdd63cc95386dull ”,因为它溢出了64位 。 我必须使用“ 0x022fdd63cc95386d ”代替。 使用这些代码。 问题是我没有得到给定输入的正确结果。 例如,做1.000.000计算的数字:17012389719861204799(使用64位)这是结果: 使用pow2方法我在1380ms内得到64百万次的结果。 使用DeBruijn方法,我在32ms内得到结果40 1百万次。 […]

英国邮政编码正则表达

我希望能够validation英国邮政编码,理想情况下,我希望通过以下案例: W1 W12 WC1 WC1A WC12 W1 6BT W12 6BT WC1 6BT WC1A 6BT WC12 6BT W16BT W126BT WC16BT WC1A6BT WC126BT 我有以下正则表达式模式: ^(GIR 0AA)|(((A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKLMNOPRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?[0-9]|((E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(SW|W)([2-9]|[1-9][0-9])|EC[1-9][0-9])( [0-9][ABD-HJLNP-UW-Z]{2})?)$ 此模式允许使用3或4和6或7位数的邮政编码(因此,只有3或4位数的外向代码,或6或7位数的完整邮政编码),但它不允许使用第4和第6点(空格包含的邮政编码)被省略了) 我也有这种模式: ^(GIR 0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]|[A-HK-Y][0-9]([0-9]|[ABEHMNPRV-Y]))|[0-9][A-HJKPS-UW]) {0,1}[0-9][ABD-HJLNP-UW-Z]{2})$ 这种模式允许6或7位数的邮政编码,我们没有空格,但不适用于不完整的邮政编码(仅限外向代码) 很抱歉在这里已经提到了一个已经广泛涵盖的问题,但是我发现的所有例子都符合我的要求,但不是全部。 理想情况下,我想要一个正则表达式模式,允许3个,4个,6个和7个数字的邮政编码,我们没有空格。 更新: 我已经完成了我的通过案件,因为我认为它最初并不完全全面。 其基本概念应遵循英国邮政编码模式,并validation以下任何组合: 1 Letter 1 Number 1 Letter 2 Numbers 2 Letters 1 Number 2 Letters 1 Number 1 Letter 2 […]

相同的(?)C#和VB.NET LINQ查询返回不同的结果

可能真的很容易,但我看不到它…… 我在LINQ中复制MS Access查询。 我先用C#编写它来测试它,因为我更喜欢C#,然后我把它翻译成VB.Net语法。 据我所知,两个查询应该是相同的,但是当C#查询返回正确的结果时,VB.NET会返回零结果。 谁能看出差异可能在哪里? C#查询: var table1 = dc.MainTable.Where(o => o.Year == 423).ToList().Select(o => new { Key_ID = o.Key_ID.Value, CropID = o.CropID.Value, GroupID = o.GroupID.Value, Surface1 = o.Surface1.Value, Surface2 = o.Surface2.Value }); var table2 = dc.OtherTable.Where(o => o.Year == 423).ToList().Select(o => new { Key_ID = o.Key_ID.Value, CropID = int.Parse(o.SAKU_CD), GroupID = int.Parse(o.SAN_DAN_NO), Surface1 […]

asp.net c#SqlDataSource timout问题

我正在尝试将SqlDataSource的超时延长超过30秒(似乎是默认值)。 我正在尝试运行一个必须运行100,000个记录的存储过程。 在繁忙时期,它会超时。 我在2003服务器上使用ASP.NET 4.0和IIS 6.0。 错误消息:超时已过期。 操作完成之前经过的超时时间或服务器没有响应。 我试图延长超时无效: < asp:SqlDataSource ID="dsTest" EnableCaching="true" CacheDuration="604800" runat="server" ConnectionString="” SelectCommand=”selectStatus” SelectCommandType=”StoredProcedure” onselecting=”dsTest_Selecting” > protected void dsTest_Selecting(object sender, SqlDataSourceSelectingEventArgs e) { e.Command.CommandTimeout = 300; } 任何帮助将不胜感激。 谢谢

通过asp.net中的TextBoxes进行迭代 – 为什么这不起作用?

我有两种方法试图迭代asp.net页面中的所有文本框。 第一个是工作,但第二个没有返回任何东西。 有人可以向我解释为什么第二个不起作用? 这样可行: List list = new List(); foreach (Control c in Page.Controls) { foreach (Control childc in c.Controls) { if (childc is TextBox) { list.Add(((TextBox)childc).Text); } } } 和“不工作”代码: List list = new List(); foreach (Control control in Controls) { TextBox textBox = control as TextBox; if (textBox != null) { list.Add(textBox.Text); } […]