小编Ama*_*son的帖子

协方差/逆变与linq表达式

我有一个名为"CreateCriteriaExpression"的函数,它接受一个json字符串并从中创建一个linq表达式.

此方法由另一个名为"GetByCriteria"的方法调用,该方法调用"CreateCriteriaExpression"方法,然后针对实体框架上下文执行该表达式.

对于我的所有实体框架对象,除了它的类型之外,"GetByCriteria"方法是相同的.所以我试图将其转换为使用泛型而不是硬编码类型.

当"GetByCriteria"方法达到必须调用"CreateCriteriaExpression"方法的程度时,我让它使用工厂类来确定要使用的适当类/方法.然后在"linq表达式"类中,创建并返回特定类型的linq表达式.

我遇到的问题是必须为特定类型创建linq表达式,但返回值是泛型类型,它不会自动在两者之间转换,即使一个是另一个的父类(协方差).

有什么方法可以让我的工作吗?

一些示例代码:

"GetByCriteria"方法:

/// <summary>
    /// Gets a <see cref="System.Collections.Generic.List"/> of <see cref="TEntity"/>
    /// objects that match the passed JSON string.
    /// </summary>
    /// <param name="myCriteria">A list of JSON strings containing a key/value pair of "parameterNames" and "parameterValues".</param>
    /// <param name="myMatchMethod">Defines which matching method to use when finding matches on the <paramref name="myCriteria"/>.</param>
    /// <returns>
    /// A <see cref="System.Collections.Generic.List"/> of <see cref="TEntity"/>
    /// objects.
    /// </returns>
    /// <seealso cref="TEntity"/>
    ///   
    /// <seealso cref="Common.MultipleCriteriaMatchMethod"/>
    /// <remarks> …
Run Code Online (Sandbox Code Playgroud)

c# linq covariance expression-trees

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

如何在xml注释<code>标记中指定语言

有没有办法在XML注释中指定<code>标记中使用的<example>标记中使用的语言?

我正在使用Sandcastle帮助文件生成器从我的XML注释中测试构建文档,但是当我在我的示例部分中包含VB.net代码示例时,它将它们显示为"C#",而不是vb.net.不确定我还需要做些什么......

这是我想要的XML注释.

        /// <summary>
        /// Creates and sends an email.
        /// </summary>
        /// <param name="subject">A <c>String</c> that contains the subject text.</param>
        /// <param name="emailBody">A <c>String</c> that contains the message body.</param>
        /// <param name="emailFrom">A <c>String</c> that contains the address of the sender of the e-mail message.</param>
        /// <param name="emailTo">A <c>String</c> that contains the addresses of the recipients of the e-mail messa</param>
        /// <param name="emailBCC">The email address to blind carbon-copy the email to.</param>
        /// <param name="IsHtml">if set …
Run Code Online (Sandbox Code Playgroud)

c# xml xml-comments

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

JSON.net JsonIgnoreAttribute不使用"EntityKey"属性

我正在使用JSON.net来序列化我的EntityFramework对象.

在过去,我创建了一个将"JsonIgnore"属性应用于属性的类,然后将主EntityFramework类的"MetadataType"属性设置为新创建的类.

这是一个例子:

将应用于EF类的类:

 public class Role_DoNotSerialize
    {
        [JsonIgnore]
        public string Users { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

EF类的部分类文件:

[MetadataType(typeof(Role_DoNotSerialize))]
    public partial class Role
    { 
    }
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,序列化"Role"对象时,不会序列化"Users"属性.

我的问题是,当我像这样添加EntityKey属性时,同样的技术无法工作:

public class Role_DoNotSerialize
    {
        [JsonIgnore]
        public string Users { get; set; }

        [JsonIgnore]
        public System.Data.EntityKey EntityKey { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

使用此类,"EntityKey"属性仍然是序列化的.我究竟做错了什么?

serialization json entity-framework json.net

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

建议在.NET中使用"类似应用程序"的功能创建新网站

我是一个非营利组织的成员,要求我帮助他们重做他们的网站.

但是,他们不仅仅想要内容和设计更改,还需要一些需要后端编程的功能.例如,组织具有可用的有限插槽的"类",人们必须提前注册.当人们报名参加课程时,他们必须提供额外的文件才能参加课程.

他们在这个类型中有几个要求他们想要添加到网站的请求.

如果只是对现有内容进行简单的重新设计,我建议他们使用Wordpress或任何其他标准CMS来更新其外观.但由于他们也想要这些附加功能,我不确定如何继续.

我还没有机会对MVC网站进行编程,所以我想我会以此为机会学习MVC.与此同时,我不想重新发明轮子.所以我正在考虑使用像Orchard这样的CMS,它使用MVC,但显然是非常可扩展的.

使用Orchard对这种情况有意义吗?如果没有,为什么不呢?CMS还有其他建议吗?我也在看Umbraco,因为看起来他们的最新版本正在使用MVC,但后来我读到它有点儿错误并且缺少旧版本中的一些功能.那么我不确定这是不是正确的方法.

最后,我甚至不确定我是否应该使用CMS!我想知道如果我从头开始做一个应用程序,我是否会更好地学习MVC.在这种情况下,我正在考虑使用CMS作为Web内容,然后将"应用程序"部分编程为一个单独的Web应用程序,该应用程序已链接到其主站点(可能是register.mysite.com).

我只是在寻找建议和指导.如果你穿着我的鞋子怎么办?

我的日常工作是一个大型组织的开发人员.我主要使用.NET编写业务Web应用程序.但是我们还没有任何MVC应用程序,所以我的MVC技能基本上不存在.我想学习MVC,但我也想在一个体面的时间回到非盈利组织.

....所以你......它在......

.net asp.net-mvc umbraco content-management-system orchardcms

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

font-face似乎不能在IE8中运行?

我的CSS中有以下几行.

@font-face { font-family: Keffeesatz; src: url(/Styles/YanoneKaffeesatz-Light.otf) format("opentype") }
@font-face { font-family: KeffeesatzBold; src: url(/Styles/YanoneKaffeesatz-Bold.otf) format("opentype") }
Run Code Online (Sandbox Code Playgroud)

在IE9中,这些出现了.在IE8中,它使用了后备字体Arial.如何在IE8中使用它?

css opentype font-face internet-explorer-8

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

使用linq确定ListB中是否存在任何ListA?

我正在尝试使用PredicateBuilder来编写动态linq查询.在我的对象中,我有一个"状态"列表,我有另一个我要搜索的状态列表.

所以我需要能够查看我的object.Status属性(列表)并查看它是否包含我的查询列表中的任何项目.

我一直在使用.Any()和.Contains(),但似乎无法找到正确的语法.

我究竟做错了什么?以下是我尝试过的一些内容,但没有一个具有正确的语法.

myObject.Statuses.Contains(myStatusList);

myObject.Statuses.Any(myStatusList);

myObject.Statuses.Any(s => s == myStatusList);
Run Code Online (Sandbox Code Playgroud)

c# linq list

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

RavenDb性能问题?

我正在运行一个测试来比较使用RavenDB为我们的数据库后端与实体框架与MSSQL.

我有我的测试应用程序设置来检查并查看RavenDB在启动时是否有任何文档,如果没有,它通过Entity Framework查询SQL数据库以获取所有对象(大约31,000个项目),然后将它们插入RavenDB.这部分按预期工作.

然后我运行测试.我查询EF以获取一组记录并将它们转换为JSON,并使用Raven重复相同(获取完全相同的记录集).我预计Raven会更快,因为它针对读取进行了优化,而EF必须连接两个表来获取数据.但事实并非如此.

以下是测试的输出:

Entity Framework with MS SQL    RavenDB Percent Difference Raven to EF
796.8954 ms (862 records)   1703.1686 ms (862 records)  213.725490196078
296.8826 ms (862 records)   796.8954 ms (862 records)   268.421052631579
281.2572 ms (862 records)   781.27 ms (862 records) 277.777777777778
281.2572 ms (862 records)   796.8954 ms (862 records)   283.333333333333
296.8826 ms (862 records)   765.6446 ms (862 records)   257.894736842105
312.508 ms (862 records)    765.6446 ms (862 records)   245
296.8826 ms (862 records)   750.0192 ms (862 records)   252.631578947368
296.8826 …
Run Code Online (Sandbox Code Playgroud)

performance ravendb

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

Azure Pipelines“需要模板”检查不起作用

我正在尝试对 Azure Pipelines 中的受保护资源(代理池、服务连接等)进行“需要模板”检查。

我在公共存储库(名为“goldenimage-azure-pipelines-templates”)中有一个共享模板设置,定义如下:

# /templates/pipelines/master.yml
parameters:
- name: templates
  type: object
  default: []

stages:
- ${{ each template in parameters.templates }}:
  - ${{ each pair in template }}:
      ${{ if eq(pair.key, 'template') }}:
        ${{ template }}
Run Code Online (Sandbox Code Playgroud)

然后,我在同一存储库中有一组共享模板,由使用的 azure-pipelines.yml 文件引用。

# /templates/stages/main.yml
stages:
  - stage: mainBuild
    jobs:
      - template: /templates/jobs/set-version.yml
      - template: /templates/jobs/build-image.yml
      - template: /templates/jobs/cleanup-build.yml
      - template: /templates/jobs/test-image.yml
      - template: /templates/jobs/cleanup-test.yml
      - template: /templates/jobs/update-configmap.yml
      - template: /templates/jobs/destroy-template.yml
      - template: /templates/jobs/cleanup.yml
Run Code Online (Sandbox Code Playgroud)

现在,在我的消费存储库中,我的 azure-pipelines.yml 文件定义如下:

# azure-pipelines.yml
name: $(GitVersion.NuGetVersionV2).$(Build.BuildId)

trigger: …
Run Code Online (Sandbox Code Playgroud)

templates azure azure-devops azure-pipelines

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

jquery验证器,选择不工作

我刚开始使用jquery validate插件但是无法按预期工作.

我在Fiddle上有一个例子,位于http://jsfiddle.net/GWABv/3/

任何人都可以告诉我,我做错了什么?我只是想要求用户在下拉列表中选择一个选项,但即使我没有选择一个值,它也会回来说该表单是有效的.

HTML:

<form id="roadForm" method="get" action="">
    <p>
        <label for="editRoad_ProjectClassification">
            <em class="red">*</em> Project Classification:
        </label>
        <select id="editRoad_ProjectClassification" name="editRoad_ProjectClassification"  title="Please select something!" validate="required:true">
            <option value="">Please select</option>
            <option value="1">1</option>
            <option value="2">2</option>
        </select>
    </p>
</form>
<label class="FUNC_saveRecord">
    <span class="icon iconSave"></span>
    <span class="title">Save</span>
</label>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

$('.FUNC_saveRecord').click(function() {
    saveRecord();
});


function saveRecord() {
    var roadFormValidator = $('#roadForm').validate();
    if (!roadFormValidator.valid()) {
        roadFormValidator.showErrors();
    }
    else {
        alert('form is valid');
    }
}
Run Code Online (Sandbox Code Playgroud)

jquery jquery-validate

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

jquery验证器addmethod动态消息

我有一个自定义验证方法,我正在使用jquery验证器.我试图获取动态生成的错误消息.

我用google搜索了,我最常见的答案显示在这个stackoverflow帖子中.

但是,当我尝试自己实现它时,它不起作用.它只是忽略我更新的消息,只显示原始消息.

这是我的代码,位于jquery.ready()函数中.我究竟做错了什么?

注意:"g $"是我们的jquery简写.

    var jsBlackoutDateMessage = "Tournaments cannot be scheduled on blackout dates.";
    var jsBlackoutDateMessageFunction = function () {
        return jsBlackoutDateMessage;
    };
    g$.validator.addMethod(
    "notBlackoutDate",
    function (value, element) {

        var notBlackoutDate = true;

        if (g$.inArray(value, jsBlackoutDates) != -1) {
            notBlackoutDate = false;
        }

        if (notBlackoutDate == false) {

            // year
            var year = new Date(g$.trim(g$('#txtDate').val())).getFullYear();

            var blackoutDatesForYear = jsBlackoutDates.filter(function (item) {
                return endsWith(item, year.toString());
            })[0];

            var blackoutDatesForYearMessage = [];
            blackoutDatesForYearMessage.push("Tournaments cannot be scheduled on blackout dates."); …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-validate

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