小编jas*_*son的帖子

linq如何选择具有包含一个或多个值的数组(或列表)的子集合的父级

这似乎很容易

var orx = gg.Where(x=>x.ProductAttributes.Any (pa =>pa.AttributeId == "home"));
Run Code Online (Sandbox Code Playgroud)

当产品属性的值为"home"时返回gg

我需要它返回where和gg有一个数组的产品属性值,即

var orx = gg.Where(x=>x.ProductAttributes.Any (pa =>pa.AttributeId in "home,work"));
Run Code Online (Sandbox Code Playgroud)

.net c# linq collections

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

使用T4模板基于POCO生成多个类

我正在寻找一种方法来提高生产力,当我向我的数据库添加一个表.通常,当我添加新表时,我必须执行以下步骤.

  1. 将表添加到数据库(简单)
  2. 创建相应的EF Code First类.(我不使用db迁移)
  3. 创建一个与#2中创建的EF类匹配的POCO模型.
  4. 创建存储库类
  5. 为CQRS模式创建命令和处理程序
  6. 为新创建的类创建AutoMapper映射

我最近创建了一个新网站,其中要求首先使用EF数据库,我看到它是如何使用tt文件生成类的.这让我想到我可以以某种方式使用这些模板(新模板)来生成基本CRUD操作的所有标准支持项.麻烦的是我没有创建这些模板的经验,也不知道从哪里开始.

要生成的示例代码:

知识库

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public interface IUsersRepository : IRepository<Users>
{
}

public class UsersRepository : RepositoryBase<Users>, IUsersRepository
{
    public UsersRepository(IDatabaseFactory databaseFactory)
        : base(databaseFactory)
    {
    }

}
Run Code Online (Sandbox Code Playgroud)

基于EDMX(或Code First)生成的实体的基本模型

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class User 
{
    public int UserId { get; set; }
    public string UserRole { get; set; }
    public string UserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

命令

using …
Run Code Online (Sandbox Code Playgroud)

c# t4 code-generation entity-framework

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

生成通用列表的组合

我需要从另一个包含每种可能组合的列表中创建一个列表.在研究可能的解决方案时,我发现了许多有趣的方法,但所有方法似乎都根据提供的记录数生成结果.我需要组合增加到最大阈值.

即考虑以下数组

1,2,3,4,5

我需要看起来类似的结果(在这个例子中阈值是3)

1
1,2
1,2,3
1,2,4
1,2,5
1,3,4
2,3,5... etc
Run Code Online (Sandbox Code Playgroud)

实际上,数据将是IEnumerable.我用一个简单的int []来说明所需的结果.

c# linq combinations combinatorics cartesian-product

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

具有多对多未加载集合属性的实体

我有一个实体名册,有一系列球员.

public class Roster
{
    public Roster()
    {
        Players = new List<Player>();
    }

    public int RosterId { get; set; }

    [MaxLength(100)]
    [Required]
    public string RosterName { get; set; }

    public ICollection<Player> Players { get; set; }
}
public class Player
{
    public int PlayerId { get; set; }
    [MaxLength(100)]
    [Required]
    public string PlayerName { get; set; }
    public virtual ICollection<Roster> Rosters { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我使用流畅的api定义了这种关系

// many to many Roster - Players
modelBuilder.Entity<Roster>()
.HasMany(t => t.Players)
.WithMany(t=>t.Rosters)
.Map(m …
Run Code Online (Sandbox Code Playgroud)

c# many-to-many entity-framework ef-code-first entity-framework-4.3

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