小编cho*_*bo2的帖子

使用FileHelper进行多个CSV结构

我正在制作一个使用csv文件的网站,这个文件可以有两种格式(将来可能更多).

结构1

Header 1 Header 2 Header 3 Header 4 
a          b      c       d
x          x      x       x
Run Code Online (Sandbox Code Playgroud)

结构2

Header 1 Header 4
a          d
x          x
Run Code Online (Sandbox Code Playgroud)

以上是如何在excel中显示(如果看原始它将以逗号分隔)

我想拥有2个结构的原因是因为我正在尝试利用用户可以从中导出数据的第三方网站.此站点将其导出为csv文件,第一行是标题.我真的只关心其中的两个标题并且当前不需要重置(但是你必须导出所有列都不能选择).

第二种结构是,如果用户不希望使用此站点,因为他们不想,不舒服这样做等等.他们可以选择打开excel并手动写入数据,然后将其保存为csv文件.

因此,对于手动人员,我想让它尽可能简单,好像我没有使用Header 2和Header 4数据为什么我要打扰他们进入呢?然而,与此同时,如果人们通过第一种方式并导出数据,我不希望他们必须将文件加载到excel并删除2列.

我要求标题必须始终保持完整并且是第一行.我想出的唯一想法是读取第一行并查看标题的顺序.如果它按照确切的顺序有4个标题,则以单向渲染.如果该顺序中只有2个标题以另一种方式呈现它.

我知道FileHelpers有能力做多个分隔符并选择如何渲染它但是因为我正在查看标题我不确定这是否已经融入或者我是否需要以某种方式自己编写然后告诉它该做什么.

有没有人知道我是否可以用filehelpers做到这一点?

编辑 这是我到目前为止

MultiRecordEngine engine = new MultiRecordEngine(typeof(Format2), typeof(Format1));
    engine.RecordSelector = new RecordTypeSelector(CustomSelector);

    using (TextReader textReader = new StreamReader(stream))
    {
        if (engine.RecordType == typeof(Format2))
        {
            var myArry = engine.ReadStream(textReader) as Format2[];

        }
        else if(engine.RecordType == typeof(Format1))
        {
            var myArry …
Run Code Online (Sandbox Code Playgroud)

c# csv filehelpers

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

如何调试这个或可能的原因?Moq.Verify上的用户代码未对System.NullReferenceException进行处理

我的单元测试中有类似的东西

public class MyTestClass()
{
      private Mock<IAccountRepo> accountRepo;
       private AdminService adminService;

      [Setup]
      public void Setup()
      {
        accountRepo = fixture.Freeze<Mock<IAccountRepo>>();
        adminService = fixture.CreateAnonymous<AdminService>();
      }

      [Test]
      public Test()
      {
          accountRepo.Setup(x => x.Insert(It.IsAny<IUnitOfWork>(), It.IsAny<MyDomainObject>()));

            adminService.ApplyAdminFee(1, 1, today);

            accountRepo.Verify(x => x.Insert(It.IsAny<IUnitOfWork>(), It.Is<MyDomainObject>(a => a.Id == 1)));
      }
}
Run Code Online (Sandbox Code Playgroud)

我收到这个错误.

System.NullReferenceException was unhandled by user code
  Message=Object reference not set to an instance of an object.
  Source=Anonymously Hosted DynamicMethods Assembly
  StackTrace:
       at lambda_method(Closure , MyDomainObject )
       at Moq.It.<>c__DisplayClass2`1.<Is>b__1(TValue value)
       at Moq.Match`1.Matches(Object value)
       at Moq.Matcher.Matches(Object value) …
Run Code Online (Sandbox Code Playgroud)

c# linq unit-testing moq

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

MaxLength + Asp.net Web API - 错误

我的 PriceDM 类中有这个属性。

 [MaxLength(8)]
        public decimal Price { get; set; }


   public void AddPrice([FromBody]PriceDM vm)
        {
}
Run Code Online (Sandbox Code Playgroud)

虽然我一直收到这个错误

{"Message":"发生错误。","ExceptionMessage":"无法将'System.Decimal'类型的对象转换为'System.Array'类型。","ExceptionType":"System.InvalidCastException"," StackTrace":" 在 System.ComponentModel.DataAnnotations.MaxLengthAttribute.IsValid(Object value)\r\n 在 System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, ValidationContext validationContext)\r\n 在 System.ComponentModel.DataAnnotations。 ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext)\r\n 在 System.Web.Http.Validation.Validators.DataAnnotationsModelValidator.Validate(ModelMetadata metadata, Object container)\r\n 在 System.Web.Http.Validation.DefaultBodyModelValidator。ShallowValidate(ModelMetadata 元数据、ValidationContext validationContext、对象容器)\r\n
在 System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren(ModelMetadata metadata, ValidationContext validationContext, Object container)\r\n
在 System.Web.Http.Validation.DefaultBodyModelValidator.ValidateProperties(ModelMetadata metadata, ValidationContext validationContext)\r\n 在System.Web.Http.Validation.DefaultBodyModelValidator.ValidateNodeAndChildren(ModelMetadata metadata, ValidationContext validationContext, Object container)\r\n
at System.Web.Http.Validation.DefaultBodyModelValidator.Validate(Object model, Type type, ModelMetadataProvider metadataProvider, HttpActionContext actionContext,串keyPrefix个)\ r \ n在System.Web.Http.ModelBinding.FormatterParameterBinding。<> C_ DisplayClass1.b_0(对象模型)\r\n 在 System.Threading.Tasks.TaskHelpersExtensions.<>c__DisplayClass36 1.<>c__DisplayClass38.<Then>b__35()\r\n at …

c# data-annotations asp.net-web-api

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

React Router-如何确定是否按下了“后退”按钮?

我有这些情况

设置页面->结果页面->详细信息页面

用户选择设置,单击下一步,获取结果,然后单击以查看更多详细信息。

详细信息页面->结果页面

用户从“详细信息”页面返回到“结果”页面。这将导致完全重新渲染,这使我再次毫无意义地访问服务器(我将结果存储在数组中)。

详细信息页面->结果页面->设置页面->结果页面

用户转到详细信息,然后返回到结果(想要获取存储的结果),然后返回到设置页面,进行更改,然后返回到结果页面(现在我想要再次从服务器完全获取)。

我想知道React Router是否可以确定我是否通过浏览器历史记录访​​问了该页面,或者我是否正在前进。

reactjs react-router

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

Asp.net Core 2.1中缺少Services.CreateScope()

是什么取代了2.1中的Services.CreateScope()?

我正在尝试按照本教程进行操作,但似乎东西已经发生了很大变化

https://dotnetthoughts.net/seed-database-in-aspnet-core/

entity-framework-core asp.net-core-2.1

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

自定义实体框架核心迁移脚本?

我需要进行“全文索引”,但我使用的是 ef core 2.1 代码第一次迁移,但完整索引在核心中没有一流的支持。

我如何编写自己的迁移,以便在应用其他生成的迁移时应用?

entity-framework ef-code-first entity-framework-core entity-framework-migrations

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

Reactjs-表。如何将多个值连接到 1 个单元格中?

我正在使用react-table但我有 2 个值要加入一个单元格中。有谁知道如何做到这一点?

假设我有这个示例代码,现在它有“名字”作为名字和姓氏的组合。

如果在我的数据库中按名字和姓氏分开会发生什么。我怎么能在这里的 ui 中将它们连接在一起(我知道我可以在 db 级别执行此操作,但这只是一个示例)

import ReactTable from 'react-table'

render() {
  const data = [{
    name: 'Tanner Linsley',
    age: 26,
    friend: {
      name: 'Jason Maurer',
      age: 23,
    }
  },{
    ...
  }]

  const columns = [{
    Header: 'Name',
    accessor: 'name' // String-based value accessors!
  }, {
    Header: 'Age',
    accessor: 'age',
    Cell: props => <span className='number'>{props.value}</span> // Custom cell components!
  }, {
    id: 'friendName', // Required because our accessor is not a string
    Header: 'Friend Name', …
Run Code Online (Sandbox Code Playgroud)

reactjs react-table

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

React Router + Axios 拦截器。如何进行重定向?

我有一个 axios 拦截器,当用户被强制注销(由于令牌过期)时,我想返回我的主页。

我不确定如何将反应路由器传递给它。我正在使用 mobx,但不确定这是否能帮助我解决这个问题。

export const axiosInstance = axios.create({
    baseURL: 'https://localhost:44391/api',
    timeout: 5000,
    contentType: "application/json",
    Authorization: getAuthToken()
  })

  axiosInstance.interceptors.response.use(function (response) {
    return response;
  }, function (error) {
    const originalRequest = error.config;
    if(error.code != "ECONNABORTED" && error.response.status === 401 && !originalRequest._retry){
      originalRequest._retry = true;
      return axiosInstance.post("/tokens/auth",{
        "refreshToken": getRefreshToken(),
        "grantType": "refresh_token"
    }).then(response => {
        localStorage.authentication = JSON.stringify(response.data);
        updateAuthInstant();
        return axiosInstance(originalRequest)
      });

    }
   return Promise.reject(error);
  });
Run Code Online (Sandbox Code Playgroud)

reactjs react-router mobx axios react-router-v4

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

EF中0..1的含义是什么?

我刚刚开始使用实体框架,并且在我的ms sql数据库中,我在一些表的关系中创建了一个图表,主键关键是我认为是1对1的关系.

现在我在VS2008中生成了EF数据库,这些相同的数据库的关系为1到0..1

所以它似乎说"0"或"1".我不确定这是什么意思,如果我应该纠正它为1比1.

谢谢

sql-server entity-framework

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

使用linq方法语法选择多个coulmns

如何在linq中选择多个列到sql方法语法?我只知道如何选择一列而不是多列.

就像我有一张桌子一样

ProductId
ProductName
ProductQty
ProductNumber
Run Code Online (Sandbox Code Playgroud)

如何在linq to sql方法语法中选择productName和ProductQty而不选择ProductNumber或ProductId?

linq-to-sql

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