首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ServiceStack OrmLite Text blobbed值检索为null

ServiceStack OrmLite Text blobbed值检索为null
EN

Stack Overflow用户
提问于 2019-03-25 07:31:00
回答 1查看 97关注 0票数 2

我们有一个使用ServiceStack OrmLite进行数据库访问的小型应用程序。我目前正在调查一个以前有效的损坏的功能。

有两个相关的实体:

[Alias("MyOrder")]
public class OrderEntity
{
    [AutoIncrement]
    public int Id { get; set; }
    ...

    // Saved as JSV blob in the table
    public AppEntity Processor { get; set; }
}

[Alias("MyApp")]
public class AppEntity
{
    [AutoIncrement]
    public int Id { get; set; }

    ...

    [StringLength(64)]
    public string UserName { get; set; }

    public Guid? InternalUserId { get; set; }
}

不确定这是否重要,但AppEntity位于另一个DLL/程序集中。

现在出现了一种奇怪的行为。Processor已正确保存在表中。我还可以在集成测试中检索它们。但是,在生产代码中,当获取OrderEntity对象列表时,Processor属性在每个实例中都为null。

我在调试器中深入研究了ServiceStack代码,发现JSV字符串最初是正确获取的,但似乎在此过程中迷失了方向。

这是一个有效的单元测试:

var connectionString = @"Server=...";
var connectionFactory = new OrmLiteConnectionFactory(connectionString, new SqlServerOrmLiteDialectProvider());
var orderRepository = new OrderRepository(connectionFactory);
var orders = orderRepository.FindBySomeFilter();

// entries have not-null .Processor property

这是一个无法工作的小应用程序:

var connectionString = @"Server=...";
var connectionFactory = new OrmLiteConnectionFactory(connectionString, new SqlServerOrmLiteDialectProvider());
var orderRepository = new OrderRepository(connectionFactory);
var orders = orderRepository.FindBySomeFilter();

// .Processor is not retrieved / null for all entries

版本:

  • .NET .NET

5.4.0

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-25 08:34:28

在无法加载System.Runtime.CompilerServices.Unsafe依赖项的情况下,您可以尝试解决运行时依赖项加载问题:

  • 尝试手动添加对包的引用,或者如果已经安装,请尝试卸载/重新安装。
  • 尝试将<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>添加到项目

由于这是一个.NET框架项目,您可以尝试添加绑定重定向:

<dependentAssembly>
    <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.4.1" newVersion="4.0.4.1" />
</dependentAssembly>

或者,如果您已经为此配置了绑定重定向,请尝试删除它。

否则,升级到最新的.NET框架v4.7+也可以解决加载运行时系统依赖关系的问题,如下所示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55329588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档