小编Nic*_*cer的帖子

如何用C#中的正则表达式解析OData $ filter?

嗨,我想知道在C#中解析OData $过滤器字符串的最佳方法是什么

/ API/organizations?$ filter ="name eq'Facebook'或name eq'Twitter'和subscriber gt'30''

应该返回所有名称为Facebook或Twitter且拥有超过30个订阅者的组织.我已经研究了很多,但找不到任何不围绕WCF的解决方案.我正在考虑使用Regex并对它们进行分组,因此我有一个Filter类列表,这样:

Filter
    Resource: Name
    Operator: Eq
    Value: Facebook
Filter
    Resource: Name
    Operator: Eq
    Value: Twitter
Filter
    Resource: Subscribers
    Operator: gt
    Value: 30
Run Code Online (Sandbox Code Playgroud)

但我很难过如何处理ANDs/ORs.

c# regex odata

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

C# EntityFramework IQueryable 内存泄漏

我们看到内存资源没有被释放:

在此输入图像描述

使用 .NET Core 的以下代码:

class Program
{
    static void Main(string[] args)
    {
        while (true) {          
            var testRunner = new TestRunner();
            testRunner.RunTest();
        }
    }
}

public class TestRunner {
    public void RunTest() {
        using (var context = new EasyMwsContext()) {
            var result = context.FeedSubmissionEntries.Where(fse => TestPredicate(fse)).ToList();
        }
    }

    public bool TestPredicate(FeedSubmissionEntry e) {
        return e.AmazonRegion == AmazonRegion.Europe && e.MerchantId == "1234";
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我删除测试谓词,.Where我会得到预期的直线,使用谓词,内存将继续无限期地增加。

因此,虽然我可以解决问题,但我想了解发生了什么?

编辑:

将该行更改为:

public void RunTest() {
    using (var context = new EasyMwsContext()) { …
Run Code Online (Sandbox Code Playgroud)

c# memory-leaks entity-framework-core .net-core

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

DateTime.TryParseExact无法使用预期的字符串

嗨我有以下方法,我传递的值为"2014年1月7日13:48:46",据我所知,TryParseExact应匹配格式"dd MMM yyyy hh:mm:ss"并返回true,然而它回归虚假,任何想法?

string[] formats= {"dd-MM-yyyy hh:mm:ss",
                   "dd MMM yyyy hh:mm:ss",
                   "dd MMM yyyy",
                   "hh-mm-ss",
                   "dd-MM-yyyy",
                   "dd-MM-yy",
                  };

 DateTime result;
 if (DateTime.TryParseExact(value, formats, CultureInfo.CurrentCulture, DateTimeStyles.None, out result))
 {
     return result;
 }
 return null;
Run Code Online (Sandbox Code Playgroud)

c# datetime

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

模型没有在POST上填充

我创建了一个简单的类来直接测试它,在Edit POST操作中,如果某个属性不在表单中,它将使用数据库中已存在的值,而是将其设置为null并覆盖任何值.

这是来自脚手架生成,让我说我注释掉密码和密码确认,因为我不希望他们编辑它,所以他们将被排除在POST值之外.

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>User</h4>
        <hr />
        @Html.ValidationSummary(true)
        @Html.HiddenFor(model => model.ID)

        <div class="form-group">
            @Html.LabelFor(model => model.Email, new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.Email)
                @Html.ValidationMessageFor(model => model.Email)
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.FirstName, new { @class = "control-label col-md-2" })
           <div class="col-md-10">
                @Html.EditorFor(model => model.FirstName)
                @Html.ValidationMessageFor(model => model.FirstName)
            </div>
        </div>

        <div class="form-group">
            @Html.LabelFor(model => model.LastName, new { @class = "control-label col-md-2" })
            <div class="col-md-10">
                @Html.EditorFor(model => model.LastName)
                @Html.ValidationMessageFor(model => model.LastName) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc entity-framework-6

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