小编JB'*_*B's的帖子

使 WebMethod 异步 Web 表单

我有大量的[WebMethod]整个应用程序,我希望我所有的[WebMethod]都是异步的。我[WebMethod]用 async 和 await 关键字装饰了我所有的签名,然后运行我的应用程序。它没有按预期进行。假设我有以下代码

背后的代码

[WebMethod]
public static async Task<List<XXX>> GetXXX()
{
    return await new BusinessLogic().GetXXX().ConfigureAwait(false);
}
Run Code Online (Sandbox Code Playgroud)

业务层

    internal async Task<List<XXX>> GetXXX()
    {
        var obj = await objDAL.GetXXX().ConfigureAwait(false);
        List<XXX> listDO = new List<XXX>();
        foreach (var item in obj)
        {
            listDO.Add(new Countries
            {
                XXXName = item.name,
                XXXID = item.id
            });
        }
        return listDO;
Run Code Online (Sandbox Code Playgroud)

objDAL.GetXXX

    internal async Task<List<tblXXX>> GetXXX()
    {
        using (ABCEntities ctx = new ABCEntities())
        {
            return await ctx.tblXXX.ToListAsync().ConfigureAwait(false);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我已经将调试器放在上面代码到达的整个路径中return await …

c# asp.net asynchronous webforms webmethod

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

具有继承的 EF Core Fluent API 配置

单独文件中的 EF CORE Fluent Api 配置适用于简单的类Ref #1 && Ref #2。当实体继承自KeyedEntityAuditableEntity

class abstract KeyedEntity<TValue> {
      public TValue Id {get; set;}
}

class abstract  AuditableEntity<TValue> : KeyedEntityBase<TValue>{
      public DateTime DateCreated {get; set;}
      public DateTime DateModified {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

映射器是这样的

public class KeyedEntityMap<TEntity, TId>
    : IEntityTypeConfiguration<TEntity> where TEntity
    : KeyedEntityBase<TId> where TId : struct
{
    public void Configure(EntityTypeBuilder<TEntity> builder)
    {
        // Primary Key
        builder.HasKey(t => t.Id);

        // Properties
        builder.Property(t => t.Id).HasColumnName("id").ValueGeneratedOnAdd();
    }
}

public class AuditableEntityMap<TEntity, TId>
    : …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework entity-framework-core asp.net-core ef-core-2.0

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

使用 Select2 jquery 进行多重选择的 ASP MVC 下拉列表

我有一个控件需要有多个选择选项来创建令牌。每当创建或删除令牌时都会生成数据库调用。现在的问题是,当我从服务器加载新页面时,控件中没有令牌。以下是我的剃刀代码:

@Html.DropDownList("ProjectIds", new MultiSelectList(projDDL.Items, "key", "value",Model.SelectedProject), new {@class = "form-control selectorBind", multiple = "multiple",@id= "myid" data_rowid = "ID", data_type="Project",data_myattr= "attr" })
Run Code Online (Sandbox Code Playgroud)

projDDL是一个包含下拉列表项的字典

SelectedProject也是包含所选项目键、值的字典

我尝试使用 MultipleSelect 跟踪此链接 MVC DropDown list但没有成功。

从服务器端加载令牌是我的问题。虽然我知道我可以通过 Jquery 轻松完成此操作,但我想使用 Razor。

解决方案 检查@Html.DropDownListFor对比@Html.ListBoxFor

@Html.ListBoxFor(y => y.SelectedProjects, new MultiSelectList(projDDL.Items, "key", "value", Model.SelectedProjects), new { @class = "form-control selectorBind", multiple = "multiple", @id = @Model.SkillType+"Project_" + Model.ID, data_rowid = @Model.ID, data_type = "Project", data_myattr = "FK_ProjectID" })
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc jquery razor jquery-select2

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