小编use*_*862的帖子

使用ExecuteMethodCall编译Linq To SQL

我们非常庞大的代码库有数百个ExecuteMethodCall调用,遵循以下模式:

    [Function(Name = "dbo.storedproc")]
    public ISingleResult<UserData> GetUserData(
        [Parameter(Name = "UserId", DbType = "BigInt")] long? userId)
    {
        IExecuteResult result = ExecuteMethodCall(this, ((MethodInfo)(MethodBase.GetCurrentMethod())), userId);
        return ((ISingleResult<UserData>)(result.ReturnValue));
    }
Run Code Online (Sandbox Code Playgroud)

但是,这会产生巨大的性能问题(Linq To SQL的众所周知的问题).所以我期待将这些代码中的至少一部分转换为Compiled Linq To Sql.

我找到了Compiled Linq To Sql的例子,但没有一个涉及ExecuteMethodCall.相反,它们都编译了一个Linq查询(来自...... where ... select).

如果有人能给我一个上述代码(使用ExecuteMethodCall)转换为Compiled Linq To SQL的示例,我将不胜感激.

sql linq

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

在TypeScript接口上从JSDoc生成文档的工具

我有一个.d.ts文件,其中包含描述我的库的接口.它有JSDoc注释,当人们在代码中引用.d.ts时,它将通过Visual Studio中的intellisense显示:

/** Description of JSNLogAppender */
interface JSNLogAppender {
    /* Description of setOptions */
    setOptions(options: JSNLogAppenderOptions): void;

    /* Description of log */
    log(logItem: JSNLogItem): void;
}

... etc ...
Run Code Online (Sandbox Code Playgroud)

我需要基于JSDoc和TypeScript接口生成文档.问题是我发现的所有生成器都使用JavaScript,并且接口不会编译为JavaScript.我可以将JSDoc放在实现接口的实际类和函数上,但是当人们引用.d.ts文件时,我会丢失智能感知.

是否有一个工具可以从.d.ts文件中的JSDoc注释和TypeScript接口定义生成html文档?

documentation-generation jsdoc typescript

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

Serilog:无法使用MongoDb接收器登录MongoDb

我有一个本地MongoDb数据库实例(通过从Windows命令行运行mongod创建),以及一个简单的控制台程序,它尝试使用Serilog及其MongoDb接收器将字符串记录到MongoDb数据库:

        var log = new LoggerConfiguration()
            .MinimumLevel.Debug()
            .WriteTo.ColoredConsole()
            .WriteTo.MongoDB("mongodb://localhost/mydb")
            .CreateLogger();

        log.Fatal("Fatal message");
Run Code Online (Sandbox Code Playgroud)

"致命消息"消息正确写入控制台,但不是我的MongoDb数据库.

我目前的MongoDb数据库是"mydb".根据"show collections",我只有集合system.indexes和testData,而"db.testData.find()"什么也没有产生.

Serilog站点说使用连接字符串"mongo:// mydb/log",但是抛出异常"MongoDB.Driver.dll中发生了'System.FormatException'类型的未处理异常".我在代码中使用的连接字符串在MongoDb站点上指定,网址为http://docs.mongodb.org/manual/reference/connection-string/

如何使用Serilog登录MongoDb?

.net mongodb serilog

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

如何测试DbContext是否在内存中?

我使用.Net Core 2.1.我的应用程序使用Entity Framework Core,并具有CoreDbContext从派生的上下文DbContext

对于单元测试,我使用的内存版本CoreDbContext,从而在我的代码中产生了此代码Startup.cs

if (useInMemoryDatabase)
{
    services.AddDbContext<CoreDbContext>(options => 
           options.UseInMemoryDatabase("dbname"));
}
else
{
    services
      .AddDbContext<CoreDbContext>(options => 
           options.UseSqlServer(DefaultDbConnectionString));
}
Run Code Online (Sandbox Code Playgroud)

我也有通过上下文访问数据库的方法。这些有时有时需要知道上下文是否在内存中,因为内存上下文的行为与普通上下文不同:

void AddRecordX(CoreDbContext context)
{
    bool contextIsInMemory = .....;

}
Run Code Online (Sandbox Code Playgroud)

如何测试上下文是在内存中还是与真实对象相关联SQL Server database

entity-framework entity-framework-core entity-framework-core-2.1

4
推荐指数
1
解决办法
1120
查看次数

Serilog:{..}和{@ ..}之间的差异

鉴于此代码:

var d1 = new { x = 5, y = 88 };
Log.Logger.Information("{d1}", d1);
Log.Logger.Information("{@d1}", d1);
Run Code Online (Sandbox Code Playgroud)

如何在两个Log.Logger.Information(...)行中以不同方式记录d1中的对象?换句话说,在{}之间添加@的影响是什么?

我在"保留对象结构"标题下阅读了https://github.com/serilog/serilog/wiki/Structuredvals,但这对我来说没有意义.

.net serilog

3
推荐指数
1
解决办法
831
查看次数

Neo4jClient - 从Cypher查询中检索关系

我无法从Cypher查询中检索匹配的关系.

我有这个简单的试用代码:

var movie = client.Create(new Movie { Title = "The Matrix" });

client.Create(new Actor { Name = "Keanu Reeves" },
    new ActedIn(movie, new ActedInPayload { Role = "Neo" }));

client.Create(new Actor { Name = "Hugo Weaving" },
    new ActedIn(movie, new ActedInPayload { Role = "Agent Smith" }));

var actorsAndRoles = client
    .Cypher
    .Start(new { movie = movie })
    .Match("actor-[r:ACTED_IN]->movie")
    .Return((actor, r) => new
    {
        Actor = actor.As<Node<Actor>>()
        // ActedIn = r.As<?????>()
    })
    .Results;
Run Code Online (Sandbox Code Playgroud)

问题是我无法弄清楚如何施放r(具有匹配的关系).

尝试了各种".As"类型演员,但都没有奏效.转换为关系不起作用,因为我的关系类没有无参数构造函数 - 但是基本类本身没有无参数构造函数,所以不要认为这会起作用.另一方面,转换为RelationshipReference会导致异常.根本不投射(只返回r)会导致"不支持"的异常.

有关此问题的一些相关SO条目,但建议的代码不再有效或已弃用.

如何检索匹配的关系?

relationship cypher neo4jclient

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