如何更快地运行此entity framework示例

我有这个代码用于向数据库添加大约1500条记录: async void button7_Click(object sender, EventArgs e) { var task = await Task.Run(() => { Random rnd = new Random(); for (int i = 0; i <= 1500; i++) { db.Tbls.Add(new Tbl() { Name = "User" + i + 1, Num = rnd.Next(10, i + 10) / 10 }); progress.Report(i * 100 / 1500); } […]

entity framework动态Where子句

我有一个查询: var function = GetSomeExpression(); using (FooModel context = new FooModel()) { var bar = context.Bar.Where(function); } 我想创建一个generics方法,可以在上下文中针对不同的实体执行Where。 目标不是必须做context.Bar.Where,context.Car.Where,Context.Far.Where等。 一些无法完成的事情,但说明了目标是: var q = context.GetObjectContext(T).Where(queryFunction); 我已经研究过使用Relfection并且可以获取Where方法,但是不知道如何针对在委托中传递的上下文执行它。 我也看过DynamicMethod,但做整个IL事情并不喜欢吸引人。 到目前为止我所拥有的: private List GetResults(Expression<Func> queryFunction) { // note: first() is for prototype, should compare param type MethodInfo whereMethod = typeof(Queryable).GetMethods() .Where(m => m.Name == “Where”) .First().MakeGenericMethod(typeof(T)); // invoke the […]

我在哪里放置实现相同接口的多个类所需的通用逻辑?

给定以下界面: public interface IFoo { bool Foo(Person a, Person b); } 以及以上两种实现: public class KungFoo : IFoo { public bool Foo(Person a, Person b) { if (a.IsAmateur || b.IsAmateur) // common logic return true; return false; } } public class KongFoo : IFoo { public bool Foo(Person a, Person b) { if (a.IsAmateur || b.IsAmateur) […]

WCF:序列化为数组的通用列表

所以我正在使用WCF和我的服务返回包含通用列表的类型。 WCF目前正通过线路将这些转换为arrays。 有没有办法配置WCF以后再将它们转换回列表? 我知道在添加服务引用时单击高级有一种方法,但我正在寻找配置文件或类似的解决方案。 [DataContract(IsReference = true)] public class SampleObject { [DataMember] public long ID { get; private set; } [DataMember] public ICollection Objects { get; set; } } 这也很奇怪,因为一个服务将其作为列表返回,另一个服务作为数组返回,我很确定它们的配置相同。

将`Kendo.Mvc.UI.DataSourceRequest`类型的对象从jquery传递给Mvc Action

目标:我想将一个类型为Kendo.Mvc.UI.DataSourceRequest的对象Kendo.Mvc.UI.DataSourceRequest给Mvc操作,这样我就可以根据应用的排序和过滤从数据库中获取结果。 问题/障碍:当对象到达动作时,该对象变为空。 我的控制器行动 public ActionResult Getresults([DataSourceRequest]DataSourceRequest request, Int32 TotalRec) { try { //get data from DAL var result = new DataSourceResult() { Data = List, // Process data (paging and sorting applied) Total = TotalRec }; return Json(result, JsonRequestBehavior.AllowGet); } catch (Exception ex) { throw ex; } } 我的jquery函数 function getData() { var gridDatasource = […]

如何在mvc4 razor中显示validation消息

我是MVC Razor的新手,我想在文本框上实现validation消息。 这里我动态创建一些文本框,如下所示: 查看代码: foreach (var items in (IEnumerable)Model.UsersOfList) { @Html.TextBoxFor(m => m.LoginNameOfLoginInfoTab, new { @class = “textBox_LoginInfoAndPermission”, @value = (Model.LoginNameOfLoginInfoTab = items[“UserName”].ToString()), @id = (“txtUserLoginName” + Model.UsernameOfLoginInfoTab.Trim()) }) @Html.ValidationMessageFor(m => m.LoginNameOfLoginInfoTab, null, new { @class = “ErrorMessage” }) @Html.TextBoxFor(m => m.UsernameOfLoginInfoTab, new { @class = “textBox_LoginInfoAndPermission”, @value = (Model.UsernameOfLoginInfoTab = items[“FirstName”].ToString()), @id = (“txtUserName” […]

使用RSA密钥保护许可证密钥

已经晚了,我累了,而且可能很密集…… 我编写了一个我需要保护的应用程序,因此它只能在我生成密钥的机器上运行。 我现在正在做的是获取BIOS序列号并从中生成哈希值,然后我使用XML RSA私钥对其进行加密。 然后我签署XML以确保它不被篡改。 我试图打包公钥来解密和validation签名,但每次我尝试执行代码作为不同的用户而不是生成签名的用户我在签名上失败。 我的大多数代码都是根据我发现的示例代码进行修改的,因为我对RSA加密并不像我想要的那样熟悉。 下面是我正在使用的代码以及我认为需要使用的代码才能使其正常工作… 任何反馈都会非常感激,因为我现在很遗憾我正在处理的原始代码就是这样,只要用户启动程序与最初签署文档的程序相同,此代码就可以正常工作… CspParameters cspParams = new CspParameters(); cspParams.KeyContainerName = “XML_DSIG_RSA_KEY”; cspParams.Flags = CspProviderFlags.UseMachineKeyStore; // Create a new RSA signing key and save it in the container. RSACryptoServiceProvider rsaKey = new RSACryptoServiceProvider(cspParams) { PersistKeyInCsp = true, }; 这段代码是我认为我应该做的,但无论我做什么都无法validation签名,无论它是同一个用户还是另一个用户…… RSACryptoServiceProvider rsaKey = new RSACryptoServiceProvider(); //Load the private key from xml […]

动态设置generics类型参数

继我的问题之后,我正在尝试创建一个通用的值相等比较器。 我以前从未玩过reflection,所以不确定我是否在正确的轨道上,但无论如何我到目前为止都有这个想法: bool ContainSameValues(T t1, T t2) { if (t1 is ValueType || t1 is string) { return t1.Equals(t2); } else { IEnumerable properties = t1.GetType().GetProperties().Where(p => p.CanRead); foreach (var property in properties) { var p1 = property.GetValue(t1, null); var p2 = property.GetValue(t2, null); if( !ContainSameValues(p1, p2) ) return false; } } return true; } […]

将平面JSON / Dictionary映射到模型(包含子类)

我想将一个扁平的json字符串转换为一个模型,目标类具有子类,而扁平的json具有带前缀的所有子类对象; 比如“{classname}。{property}”。 { “FirstName”: “Joey”, “LastName”: “Billy”, “EmploymentDetails.JobTitle”: “JobTitle”, “EmploymentDetails.StartDate”: “2015-01-01T00:00:00”, “ContactDetails.HouseNumberName”: “10”, “ContactDetails.Road”: “Road” } 这是我的目的地类: public class Person { public string FirstName { get; set; } public string LastName { get; set; } public virtual EmploymentDetails EmploymentDetails { get;set;} public virtual ContactDetails ContactDetails { get;set;} } public class EmploymentDetails { public string JobTitle […]

带有父/子关系的SQL批量插入,是否保留了订单?

与下面提到的其他问题类似,我有两个表格结构: create table parent ( recno int identity(1,1) primary key not null, groupCode int, parentdata varchar(80) ); create table child ( parentrecno int not null, childdata varchar(80) ) 我需要在这些表中快速插入几十万个记录 – 这些表包含数百万个与此插入无关的其他记录,并且永远不会安静。 由于父/子的性质,它不适合SqlBulkCopy (似乎)。 在使用带有INSERT SqlCommand C#中,我插入了大约400-500条记录/秒,这有点太慢了。 伪代码: foreach(Record r in parentRecords) { Insert Fields from r into SqlCommand Parameters but not “recno” Call ExecuteScalar to […]