小编k.c*_*.c.的帖子

Buildserver找不到Entity Framework Sql Provider

我们正在从实体框架4切换到实体框架6.包管理器完成了它的工作,解决方案运行它的测试毫不费力.

但是在构建服务器上,我们得到以下运行测试的错误消息:初始化方法xxx.SetUp抛出异常.System.InvalidOperationException:

无法加载在具有不变名称"System.Data.SqlClient"的ADO.NET提供程序的应用程序配置文件中注册的实体框架提供程序类型"System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer".确保使用了程序集限定名称,并且程序集可供正在运行的应用程序使用.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882.

如果我们在构建服务器上本地打开解决方案,并在其中安装了Visual Studio,则测试将再次运行而不会出现错误.

我们将Cruise Control .Net与SVN结合使用,作为我们持续集成的工具.Build用于构建解决方案,测试与Ms Test一起运行.

有没有人遇到类似问题或对解决方案有任何想法?

cruisecontrol.net msbuild mstest entity-framework-6

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

如何设计流畅的异步操作?

异步操作似乎不适合我喜欢编写的流畅接口.Asynchrony如何与Fluent结合使用?


示例:我有两个先前返回的方法,MyEntity但在更改为Async时效果不佳.在我异步他们之后,我必须await完成任务的结果,但我必须为每个添加的步骤执行此操作:

MyEntity Xx = await(await FirstStepAsync()).SecondStepAsync();
Run Code Online (Sandbox Code Playgroud)

一定有更好的方法.

.net c# fluent async-await

10
推荐指数
4
解决办法
3209
查看次数

重置实体框架7迁移

我正在使用Entity Framework 7 beta 5.我开始使用带有用户管理的mvc模板.在我的试验期间,我添加了几次迁移.

现在我想删除我的数据库,创建一个新的初始迁移并用它生成一个新的干净数据库.

但是,dnx ef命令没有我知道的命令,这将有助于此.我该怎么办?

entity-framework-core asp.net-core

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

如何使 .net core 3.1 控制台应用程序中的控制台记录器工作

我正在构建一个 .Net Core 3.1 控制台应用程序,我想在控制台日志记录中使用构建。关于 .net 日志记录的文章数不胜数,但我无法找到实际在控制台中写入的示例。

   namespace test
   {
      class Program
      {

        static void Main(string[] args)
        {
            var serviceProvider = new ServiceCollection()
                .AddLogging(config => config.ClearProviders().AddConsole().SetMinimumLevel(LogLevel.Trace))
                .BuildServiceProvider();

            //configure console logging
            serviceProvider
                .GetService<ILoggerFactory>();


            var logger = serviceProvider.GetService<ILoggerFactory>()
                .CreateLogger<Program>();

            logger.LogDebug("All done!");

            Console.Write("Yup");
        }
    }
Run Code Online (Sandbox Code Playgroud)

它编译并运行,甚至向控制台写入“Yup”,但是“All done!” 未显示。控制台窗口中的输出:控制台输出

这是我的示例项目结构: 在此处输入图片说明

我错过了什么?

这是对服务的处理:感谢 Jeremy Lakeman 修复:

            static void Main(string[] args)
        {
            using (var serviceProvider = new ServiceCollection()
                .AddLogging(config => config.ClearProviders().AddConsole().SetMinimumLevel(LogLevel.Trace))
                .BuildServiceProvider())
            {
                //configure console logging
                serviceProvider
                    .GetService<ILoggerFactory>();


                var logger = serviceProvider.GetService<ILoggerFactory>()
                    .CreateLogger<Program>();

                // run app …
Run Code Online (Sandbox Code Playgroud)

c# console-application .net-core

7
推荐指数
2
解决办法
3098
查看次数

如何在NHibernate事务上设置超时

我需要在单个事务中完成大量的数据库处理,包括使用NHibernate进行的一些处理.

为了使所有内容在同一个事务中工作,我使用NHibernate的Session启动它,并为其中的其他工作登记命令.

一切顺利,直到我承诺.那时我得到了一个事务超时.

如何将NHibernate事务超时值设置得足够高?

我们使用FluentNHibernate.

nhibernate transactions fluent-nhibernate

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

如何为asp indentiy生成的密码重置链接设置有效时间

对于我们的新项目,我们希望尽可能多地利用 asp.net mvc 5。这包括使用 AspNet.Identity 工具集进行用户管理。

我们正在使用以下版本:

  "Microsoft.AspNet.Identity.Core" version="2.2.1" targetFramework="net46" 
  "Microsoft.AspNet.Identity.EntityFramework" version="2.2.1" targetFramework="net46"
Run Code Online (Sandbox Code Playgroud)

在我们之前推出自己的应用程序中,我们确保重置链接只能使用一次,并且它们会在一天左右的时间内过期。

AspNet.Identity 是否支持类似的东西?我在文档中找不到它。

为了通过我们的安全检查,链接至少应该过期。

如何做到这一点?

asp.net-mvc-5 asp.net-identity

5
推荐指数
2
解决办法
7956
查看次数

加载一个NHibernate依赖的dll时出错

我正在使用NHibernate构建一个应用程序.因为我无法添加我当前版本的NHibernate的DLL(当框架4.0是目标时我无法添加引用).

我试图获得最新最好的www,这就是我现在所拥有的:

  • NHibernate.dll(3.2.0.4000)
  • NHibernate.ByteCode.Castle(3.0.0.4000)
  • FluentNHibernate.dll(1.2.0.694)
  • Castle.Core(2.5.2.0)
  • Castle.Services.Logging.NLogIntegration(2.5.2.0)
  • Antlr.Runtim(3.1.3.42154)
  • Iesi.Collections(3.2.0.400)

这些我可以参考和构建我的解决方案.我知道复制/加载dll.s有一些问题,所以我把它们作为部署项目.但运行时我(仍然)获得以下内容:

NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException:无法代理工厂类的配置期间加载类型"NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle".可能的原因是: - 未部署NHibernate.Bytecode提供程序程序集. - 用于初始化session-factory部分的"proxyfactory.factory_class"属性的typeName格式不正确.

解:

确认您的部署文件夹包含以下程序集之一:

NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll ---> System.TypeLoadException:方法IsProxy'型 'NHibernate.ByteCode.Castle.ProxyFactoryFactory' 从组件"NHibernate.ByteCode.Castle,版本= 3.0. 0.4000,Culture = neutral,PublicKeyToken = aa95f207798dfdb4'没有实现.

想什么?

为了回应Vijay Gill的回答,我决定采取不同的策略.

NUGet套餐,一站式商店,轻松更新!

那里有一个FluentNHibernate包.我安装了它,但我想这里也有一些不妥之处:

测试方法CoreDatabaseTests.CreateCoreDatabase抛出异常:

System.IO.FileLoadException:无法加载文件或程序集"NHibernate的,版本= 3.2.0.4000文化=中性公钥= aa95f207798dfdb4"或它的一个依赖.定位的程序集的清单定义与程序集引用不匹配.(从HRESULT异常:0x80131040)---> System.IO.FileLoadException:无法加载文件或程序集 'NHibernate的,版本= 3.1.0.4000文化=中性公钥= aa95f207798dfdb4' 或它的一个依赖.定位的程序集的清单定义与程序集引用不匹配.

nhibernate castle nuget

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

如何控制.Net Core 2中依赖注入的范围

我们正在.Net 2.0 Core 中开发一个类库。我们直接使用依赖注入。我们有一些服务想要从容器中解析为“Scoped”。

我们如何在代码中开始(和结束)这样的范围。如果能够在我们一些更复杂的测试场景中做到这一点,那就太好了。

注意:我们不使用“ASP.Net Core”

c# dependency-injection .net-core

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

如何将 Serilog 添加到单元测试的服务集合中

在我们的 .Net Core 3.1 项目中,我们使用 Serilog 进行日志记录

在我的测试设置中,我创建了一个 ServiceCollection,以便我可以使用服务集合 \ - 提供程序来更新我在测试中使用的类。我有一个同时使用 DbContext 和 Serilog 记录器的存储库。

using Serilog;
using Microsoft.EntityFrameworkCore;

namespace MyApp.Persistency
{
    public class MyRepository : IMyRepository

{
    private readonly DataContext _dataContext;
    private readonly ILogger _logger;

    public OpvragenOnbekendeBurgerRegistratieRepository(DataContext dataContext, ILogger logger)
    {
        _dataContext = dataContext;
        _logger = logger;
    }
...
}
Run Code Online (Sandbox Code Playgroud)

在我的测试课中:

    [TestInitialize]
    public void Initialize()
    {
         var diCollection =
         new ServiceCollection()
             .AddSingleton(new SqlConnectionOption(_connectionstring))
             .AddDbContext<DataContext>(
                options =>
                {
                   options.UseSqlServer(_connectionstring);
                }
              )
              ...               
              xxx Add some kind of Serilog registration …
Run Code Online (Sandbox Code Playgroud)

c# mstest serilog .net-core

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

模拟HttpContext以检索项目表单上下文项目字典

我们使用MVC3,对于我们的单元测试,我们在单元测试中使用RhinoMocks.当请求开始时,我们检查它来自的域并将其与客户匹配.该客户存储在HttpContext.Items中.大多数控制器需要这些信息来完成他们的工作

var mocks = new MockRepository();
using (var controller = new TestController())
{
    HttpContext context = 
        MockRepository.GenerateStub<HttpContext>();

    Customer customer = new Customer { Key = "testKey" };
    context.Items["Customer"] = customer;

    controller.ControllerContext = 
        new ControllerContext { 
            Controller = controller, 
            RequestContext = 
                new RequestContext(
                    new HttpContextWrapper(context), 
                    new RouteData()
                    ) 
        };
       ...
Run Code Online (Sandbox Code Playgroud)

此代码示例基本上显示了所需的内容,但不允许存根,因为HttpContext是一个"密封"类.控制器接受一个HttpContextBase(有很多关于模拟这个),但它不公开Items属性.

想什么?甚至更好的解决方案;-)

rhino-mocks http asp.net-mvc-3

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