小编Tra*_*rde的帖子

如何使用MongoDB的官方C#驱动程序删除'ID'中的'文档'?

有人可以告诉我,如果有更好的方法document从使用官方C#驱动程序删除MongoDB 中的一个,而不是我以下 -

var query = Query.EQ("_id", a.Id);
database.GetCollection<Animal>("Animal").Remove(query);
Run Code Online (Sandbox Code Playgroud)

这段代码有效,但对我来说似乎太过分了.例如,"保存"命令需要一个实例并对其进行更新.我想要像 - Remove(item).

备注:我正在尝试使用C#的官方驱动程序,而不是看起来过时的NoRMSamus.

.net c# mongodb mongodb-.net-driver

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

resharper intellisense问题与扩展方法

所以,我有一个使用这样的方法定义的存储库:

IQueryable<Customer> Customers{...}
Run Code Online (Sandbox Code Playgroud)

以及其他一种过滤客户的扩展方法,如下所示:

public static IQueryable<Customer> WithID(this IQueryable<Customer> customers, int ID){...}
Run Code Online (Sandbox Code Playgroud)

这很好,让我像这样使用存储库:

var c = repo.Customers().WithID(5).Single();
Run Code Online (Sandbox Code Playgroud)

但问题是,ReSharper在这个重要时刻搞砸了自动完成.当我输入

var c = repo.Customers().Wi
Run Code Online (Sandbox Code Playgroud)

我得到了很好的Intellisense向我展示了WithID(...)方法,但是当我向下游标并点击TAB时,它没有按预期获得WithID()方法,而是返回并更改已编写的代码并且该行最终看起来像:

var c = CustomerExtensions.WithID(repo.Customers())
Run Code Online (Sandbox Code Playgroud)

这当然让我不得不回去再输入它,这次IGNORE intellisense - 恕我直言,这绝不是一件好事:)

我通过进入选项并为Intellisense指定"Visual Studio"来确认这是一个ReSharper问题.我不想回到普通工作室!

任何人都可以帮助或建议解决方法吗?

resharper intellisense extension-methods

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

使用newtonsoft,如何在不知道类型直到运行时反序列化?

所以followwing工作得很好,从字符串json给我一个Team对象:

var found = JsonConvert.DeserializeObject<Team>(json);
Run Code Online (Sandbox Code Playgroud)

但如果直到运行时我才知道类型怎么办?假设我有上面的字符串json,但我还有另一个字符串类型名称?例如,这不起作用:

var found = JsonConvert.DeserializeObject(json, Type.GetType("Team"));
Run Code Online (Sandbox Code Playgroud)

无法将"Newtonsoft.Json.Linq.JArray"类型的对象强制转换为...

json json.net

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

如何让Hudson CI在状态电子邮件中包含测试结果

我一直在评估Hudson,着眼于从CC.NET转换它.在CC.NET中,我收到了包含测试统计信息的电子邮件,例如测试运行次数,失败次数等等.它甚至以红色显示"此项目没有测试",这是一个很好的激励因素,对吗?

在哈德森有没有办法做到这一点?

我已经尝试过email-ext插件,因为我被告知它可以将测试输出和其他好东西放到电子邮件中,但我无法弄清楚"如何".

看起来我需要为"内容"添加一个令牌,但是我没有看到任何可用的令牌对我来说看起来像"测试结果":)或任何可以解析我提供路径的xml,或者这样的.

有没有人这样做,可以帮忙吗?谢谢!

continuous-integration hudson

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

petapoco插入问题

我有一个像这样定义的类:

public class Location
{
    public Location()
    {
        Meetings = new List<Meeting>();
    }

    public virtual int ID { get; private set; }
    public virtual string Name { get; set; }

    public virtual ICollection<Meeting> Meetings { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

而这个数据库表只是带有ID和Name属性的"位置".

其他一些表"会议"有一个外键回到此表.它是超出了我想在这个例子中与之合作的范围,但我认为这是造成PetaPoco失败...

我正在尝试使用PetaPoco将新位置插入数据库,如下所示:

    public int AddLocation(string name)
    {
        var newLocation = new Location{Name = name};
        var db = new PetaPoco.Database(_connectionString);
        db.Insert("locations", "ID", newLocation);
        return newLocation.ID;
    }
Run Code Online (Sandbox Code Playgroud)

它会抛出这样的错误:

{"对象类型System.Collections.Generic.List`1 [[NHRepoTemplate.sampleUsage.sampleModel.Meeting,NHRepoTemplate,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null]]不存在映射到已知的托管提供者本机类型."}

在我看来,子集合的存在导致PetaPoco无法进行插入,但是......必须有一种方法告诉它"忽略"那个,对吧?

orm petapoco

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

如何防止EF尝试在我的模型上映射方法?

所以,我有一个具有普通属性的"Speaker"类,以及一个像这样的普通旧方法:

public string FullNameFirstLast()
{
    return FirstName + " " + LastName;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Entity Framework Code First Magic Unicorn版,我收到此错误:

System.NotSupportedException:LINQ to Entities无法识别方法'System.String FullNameFirstLast()'方法,并且此方法无法转换为商店表达式.

这看起来很奇怪,因为它是一种方法,而不是属性,所以我想知道为什么EF会关心它...所以我试着告诉EF忽略它:

    modelBuilder.Entity<Speaker>()
        .Ignore(ignore => ignore.FullNameFirstLast())
        ;
Run Code Online (Sandbox Code Playgroud)

这没有用,因为现在我收到此错误消息:

System.InvalidOperationException:表达式'ignore => ignore.FullNameFirstLast()'不是有效的属性表达式.表达式应该表示一个属性:C#:'t => t.MyProperty'VB.Net:'Punction(t)t.MyProperty'.

我该怎么做呢?我假设我的模型对象上有EF方法,对吧?

linq-to-entities entity-framework entity-framework-4.1

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