小编Sti*_*son的帖子

更智能的实体框架Codefirst流畅的API

我需要在所有DateTime和DateTime上使用Sql Server的"datetime2"类型?我所有实体对象的属性.这通常使用流畅的API完成,如下所示:

modelBuilder.Entity<Mail>().Property(c => c.SendTime).HasColumnType("datetime2");
Run Code Online (Sandbox Code Playgroud)

但是,我不希望手动为每个实体类型中的每个DateTime字段执行此操作.(我没有可以放置所有DateTime属性的公共基类型,因为DateTime属性特定于定义它们的实体类型).

简短的问题:我的选择是什么?

长期的问题:我正在考虑使用反射并做了一个尝试,但它变得非常混乱,因为似乎流畅的API不适合这种工作,因为我不得不通过反射调用通用的流畅API方法.这是我的混乱尝试:

    protected override void OnModelCreating(DbModelBuilder modelBuilder) {
        var genericEntityMethod = modelBuilder.GetType().GetMethod("Entity");
        var entityTypes = Assembly.GetExecutingAssembly().GetTypes().Where(t => t.IsClass && !t.IsAbstract && t.GetInterface("IEntity") != null);
        foreach (var t in entityTypes) {
            var props = t.GetProperties().Where(p => 
                p.GetSetMethod() != null && 
                p.GetGetMethod() != null && 
                (p.PropertyType == typeof (DateTime) ||  
                p.PropertyType == typeof(DateTime?)));
            foreach (var propertyInfo in props) {
                var entityMethod = genericEntityMethod.MakeGenericMethod(t.GetType());
                var entityTypeConfiguration = entityMethod.Invoke(modelBuilder,null);
                var lambdaExpression = Expression.Lambda(Expression.MakeMemberAccess(Expression.Parameter(t), propertyInfo), Expression.Parameter(t));

                //var propertyMethod = …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework ef-code-first

11
推荐指数
1
解决办法
1129
查看次数

Mono上的独立异步Web API

有没有人有成功(生产代码)在Mono上托管独立的异步Web API(asp.net web API)服务?独立我的意思是在asp.net之外的控制台应用程序中托管API.

我正在寻找一种简单的方法来创建REST API,我真的很想让我的堆栈异步(C#5样式)从顶层HTTP层到底层数据访问层,现在C#5有这么好的支持为了它.

通常我会使用ServiceStack并将其作为Linux上的守护进程托管,但由于ServiceStack不支持其服务中的新C#5异步内容(据我所知),我正在考虑使用自托管的异步Web API在Mono上.

我知道,有在ServiceStack的方式有些异步分支,但还没有准备好,我知道有在ServiceStack一些asynconeway东西,但我不认为这是使用新的基于任务异步的东西在C# 5.

所以我的问题是,在单声道上使用自托管异步Web API制作REST服务是否可行且稳定,或者在Mono上进行独立托管时是否更好地使用同步ServiceStack?

mono async-await servicestack asp.net-web-api

10
推荐指数
1
解决办法
6167
查看次数

SingleProducerConstrained和MaxDegreeOfParallelism

在C#TPL数据流库中,SingleProducerConstrained是ActionBlocks的优化选项,当只有一个线程为动作块提供时,您可以使用它:

如果一个块只曾经打算通过一次单一的生产商,同时意味着只有一个线程被用来将使用类似帖子,OfferMessage和方法的块上完成的,这个属性可以被设置为true通知阻止它不需要应用额外的同步.

如果有什么的ActionBlock使用具有单个TransformBlock喂MaxDegreeOfPArallelism> 1 - 将违反规则的ActionBlock SingleProcerContrained设置为true?或者是MaxDegreeOfPArallelism> 1的单个TransformBlock仍被视为"单一生产者"?

c# multithreading task-parallel-library tpl-dataflow

9
推荐指数
1
解决办法
930
查看次数

当代码的所有部分都不是异步时,异步Web服务有什么好处

我想知道如果不是代码的所有部分都是异步的,那么使用异步http请求会带来多少好处.

让我们考虑一下场景:1)异步http请求阻塞同步数据库调用,以及2)同步等待异步数据库调用的http请求.

1)Web Api支持异步操作方法,但是如果我在处理请求时执行同步数据库调用,那么线程会阻塞调用,而且我不会从async可以给我或更好的线程经济中获益吗?

2)如果我有等待异步数据库调用的同步ServiceStack服务调用,那么会发生什么?我假设一个线程被保留用于处理整个同步http请求,当这个线程等待异步调用时,它仍然保留给Web请求或者什么?

基本上我的问题可归结为:如果不是所有IO调用都是异步的话,有没有理由使用异步?

c# asynchronous servicestack asp.net-web-api

8
推荐指数
1
解决办法
1795
查看次数

什么.Net orms或MicroOrms支持异步操作和PostgreSql

什么ORM支持异步操作和postgresql?

我更喜欢像Dapper和OrmLite这样的简单MicroOrms,因为它们看起来性能很好而且非常简单,但据我所知,它们不支持异步操作.

也许我错了,但是让所有IO绑定操作异步以获得说需要扩展的异步Web服务的全部好处并不重要?

那么关于支持异步操作和Postgresql的MicroOrm有哪些选择呢?我刚刚读到一个名为Insight.Data的新Orm,但我不确定它是否正确支持PostgreSql.

dapper

7
推荐指数
1
解决办法
4788
查看次数

是否可以使用servicestack在剃刀视图中设置断点?

我在服务堆栈中尝试新的剃刀视图,我有这个观点:

@inherits ServiceStack.Razor.ViewPage<ServiceStackRazorCrud.Api.UserPageResourceResponse>
@{
    var m = Model;  // <-- I have a breakpoint in this line.
    var req = Request; 
    var res = Response;
}
Run Code Online (Sandbox Code Playgroud)

当我设置断点并运行应用程序(控制台应用程序)时,我可以看到视图已编译但调试器在我在浏览器中请求视图时不会中断.我假设这是因为视图是在应用程序启动时动态编译的或类似的东西.有可能以某种方式让断点工作吗?

razor servicestack

7
推荐指数
1
解决办法
467
查看次数

ServiceStack和OrmLite中的异步支持

目前存在ServiceStack的异步分支,可以创建异步服务.但是为了获得异步的所有好处,所有IO绑定操作都应该是异步的,因此所有数据库请求也应该是异步的.我目前正在使用OrmLite和Postgresql,因此我想知道OrmLite是否支持异步查询/操作?如果没有,其他什么.Net Micro-Orms支持异步操作?

asynchronous async-await servicestack micro-orm ormlite-servicestack

6
推荐指数
1
解决办法
1984
查看次数

如何在使用Entity Framework codefirst播种数据时控制主键值

我正在使用具有codefirst和sql server express 2012的实体框架5创建一个asp.net mvc4站点.

我已经启用了迁移,现在在我的Configuration.Seed方法中执行此操作:(请注意,我想将主键设置为8,即使这是数据库中的第一条记录).

context.ProductCategoryDtoes.AddOrUpdate(x => x.Id,
    new ProductCategoryDto() { Id = 8, Name = "category1" }
);
Run Code Online (Sandbox Code Playgroud)

我的Model对象定义如下:

[Table("ProductCategory")]
public class ProductCategoryDto {
    public long Id { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这导致(SQL SERVER EXPRESS 2012)中的表,其中Id列具有Identity = true,Identity seed = 1,identity increment = 1.

现在,当我通过在PM> Update-DatabaseId = 1的行中执行此结果来运行迁移时.

所以我的问题是:

1)在播种数据时如何控制自动递增主键的值.

2)如果解决方案是增加键列种子值,那么在我使用时如何完成Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());.这将在每次更新数据库时核对并重建数据库,那么如何在新数据库中更新种子值?

sql-server entity-framework ef-code-first ef-migrations

6
推荐指数
1
解决办法
3965
查看次数

nancyfx中的模块是否真的在每个请求中创建?

我在控制台项目中创建了一个简单的自托管Nancy站点,其中包含一个模块.在测试时,我注意到每个请求都会调用模块构造函数.这让我感到困惑,因为ctor也是路线注册的地方.这对我来说没有意义,我必须遗漏一些东西.那么在每个请求上调用的模块构造函数是否都是在每个请求上重新注册的所有路由?

nancy

6
推荐指数
1
解决办法
1856
查看次数

HTML5图表库,支持缩放缩放

我需要制作一个跨平台移动网络应用程序,该应用程序必须显示带有缩放缩放的折线图.它需要显示价格序列,您可以在其中进行缩放以使轴缩放.

我用Google搜索了一下但未能清楚地了解我的选择.所以在我开始测试像highcharts这样的vivous lib之前,我想听听是否有人可以推荐一个支持折线缩放线图的图表html5 lib.它必须适用于ios和android,并且基于html5和javascript.

javascript mobile charts html5 highcharts

5
推荐指数
1
解决办法
2936
查看次数