小编Kgn*_*web的帖子

如何从Enum获取字符串值

我和Enum很困惑.这是我的枚举

enum Status
{
   Success = 1,
   Error = 0
}


public void CreateStatus(int enumId , string userName)
{
     Customer t = new Customer();
     t.Name = userName;
    // t.Status = (Status)status.ToString(); - throws build error
     t.Status = //here I am trying if I pass 1 Status ="Success", if I pass 0 Status = "Error"

}
Run Code Online (Sandbox Code Playgroud)

错误 - 无法将字符串转换为enum.Status

public class Customer
{
  public string Name { get; set;}
  public string Status {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

如何使用枚举状态设置客户对象的状态属性.

(没有If-Else或切换梯子)

c# asp.net enums

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

EF Core - 在上一个操作完成之前,在此上下文中启动了第二个操作。不保证任何实例成员都是线程安全的

我正在使用EF Core 2.1并且我正在尝试使用Tasks(TPL)一次性更新多个实体:

public async Task UpdateAttendance(IEnumerable<MyEvents> events)
{
    try
    {
        var tasks = events.Select(async entity =>
        {
            await Task.Run(() => Context.Entry(entity).Property(x => x.Attendance).IsModified = true);
            await Context.SaveChangesAsync();
        });

        await Task.WhenAll(tasks);
    }
    catch (Exception ex)
    {
        throw new Exception(ex.Message ?? ex.InnerException.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

但这会引发以下错误。

在前一个操作完成之前,在此上下文中启动了第二个操作。不保证任何实例成员都是线程安全的。

启动文件

services.AddScoped<IMyRepository, MyRepository>();
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

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

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

moq 中的错误“表达式树可能不包含使用可选参数的调用或调用”

在尝试使用以下方法模拟 AWS Cognito 注册方法时 Moq C#

 public async void Signup(UserTO user)
    {

        var req = new SignUpRequest()
        {

        };
        _cognito.Setup(m =>
            m.SignUpAsync(It.IsAny<SignUpRequest>())) // LOE
            .ReturnsAsync(() =>
            new SignUpResponse()
            {

            });
    }
Run Code Online (Sandbox Code Playgroud)

但是在#LOE 处,出现以下错误

错误 CS0854 表达式树可能不包含使用可选参数的调用或调用

如果我按 f12 来获取 SignUpAsync() 的定义,它看起来像

Task<SignUpResponse> SignUpAsync(SignUpRequest request, CancellationToken cancellationToken = default(CancellationToken));
Run Code Online (Sandbox Code Playgroud)

是什么导致了这个错误以及如何摆脱这个错误?

谢谢!

c# nunit moq asp.net-core

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

解析值时遇到错误意外字符:。路径 '',第 1 行,位置 1

我有一个 ASP.Net Core 2.1 应用程序。我收到与下面 SO 链接中提到的相同的错误。

解析值时遇到意外字符: 。路径 '',第 1 行,位置 1

答案部分中建议的解决方案似乎也解决了这个问题。

但是为一个属性创建一个类是开销并且对我没有吸引力。

过去,我没有使用 .Net Framework 4.5(+) 创建这样的开销类就做了同样的事情

// POST api/values
[HttpPost]
public void Post([FromBody]string email)
{
}
Run Code Online (Sandbox Code Playgroud)

通过邮递员,我发布

{
    "email": "myemail@email.com"
}
Run Code Online (Sandbox Code Playgroud)

如何在不创建任何类等的情况下将电子邮件值传递给 API?

我宁愿棒[FromBody],因为在我的应用程序中所有的API被接受PARAMSFromBodyPost方法。

c# postman asp.net-core asp.net-core-webapi asp.net-core-2.1

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

如何在HTML中指定Javascript的版本

随着新的JavaScript ES6的推出.我想知道如何指定版本.

假设,如果我想使用HTML5,我会在html页面的顶部声明

<!DOCTYPE HTML> 
Run Code Online (Sandbox Code Playgroud)

同样,如果我认为使用jQuery然后我使用jQuery 2.1.4或任何我做的src指向下面的url

https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js
Run Code Online (Sandbox Code Playgroud)

这就是我们用html编写js的方法.

<script type="text/javascript"> 
 //js
</script>
Run Code Online (Sandbox Code Playgroud)

要么

<script type="text/javascript" src="external.js"> </script>
Run Code Online (Sandbox Code Playgroud)

如何在脚本中使用ES6版本,以防浏览器不支持,请回退到ES5.

javascript ecmascript-6

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

'System.Data.Entity.Migrations.DbMigrationsConfiguration`1'的类型初始值设定项引发了异常

我有ASP.Net MVC网站。

技术栈

  • ASP.Net 4.6
  • C#.Net
  • EF 6
  • MySQL数据库

当我尝试使用Nuget命令生成数据库时:

Enable-Migrations -force
Run Code Online (Sandbox Code Playgroud)

我收到以下异常

'System.Data.Entity.Migrations.DbMigrationsConfiguration'1'的类型初始值设定项引发了异常。

我已对以下内容进行了交叉检查和尝试:-

我的App.Config:-

 <connectionStrings>
<add name="mydbContext" providerName="MySql.Data.MySqlClient" connectionString="Server=localhost;port=8080;database=mydb;uid=root;password=" />
</connectionStrings>



<entityFramework>
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory,   MySql.Data.Entity.EF6" />
<providers>
  <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.8.8.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
</providers>
Run Code Online (Sandbox Code Playgroud)

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

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

未找到与请求URI匹配的HTTP资源

我检查了一些链接,以了解错误的原因,但没有解决我的问题.

我试图从Postman访问WebAPi操作,但得到以下错误.

"message":"找不到与请求URI匹配的HTTP资源' http:// localhost:50684/api/albums/history '.",
"messageDetail":"找不到与名为'album'的控制器匹配的类型".

我的API.

[Authorize]
public class AlbumsController : ApiController
{

   [HttpGet]
   [Route("api/album/history/")]
   public BaseTO GetHistory(string type,int id)
   {  
      //api stuff
   }
 }
Run Code Online (Sandbox Code Playgroud)

我试过了 api/album/history/{anything}

在接到Postman的电话时,我正在路过: -

  • 授权令牌
  • 类型
  • ID

任何帮助/建议高度赞赏.谢谢

asp.net-web-api postman

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

如何在 AWS Cognito 中将电子邮件标记为唯一键

我正在使用AWS Cognito下面User Management是我的配置的样子

在此输入图像描述

现在,通过此配置,这使得电子邮件成为强制性的并允许有效的电子邮件地址。

但我需要将电子邮件作为唯一的密钥。

如何以及在哪里可以在 AWS Cognito 中执行相同的操作?

谢谢!

amazon-web-services amazon-cognito asp.net-core

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

HAA0502 显式新引用类型分配

我有ASP.Net Core 2.1C#申请。我正在使用Clr 堆分配分析器

https://marketplace.visualstudio.com/items?itemName=MukulSabharwal.ClrHeapAllocationAnalyzer

其中一种方法如下所示

前#1

public void ConfigureServices(IServiceCollection services) {

services.AddSingleton<IPocoDynamo>(serviceProvider => {
    var pocoDynamo = new PocoDynamo(serviceProvider.GetRequieredService<IAmazonDynamoDB>());
    pocoDynamo.SomeMethod();
    return pocoDynamo;
});
Run Code Online (Sandbox Code Playgroud)

}

例#2

public async Task<EventTO> AddEvent(EventTO eventObj)
{
  try
    {       
      throw new Exception("Error!");
    }
 catch (Exception ex)
 {
   Logger.Log(ex, eventObj);
   return null;
  }
}
Run Code Online (Sandbox Code Playgroud)

我在整个应用程序中使用 DI。但无论分析器在哪里找到new关键字,它都会发出警告:

HAA0502 显式新引用类型分配

此外,无论何时使用 Lambda 表达式,它都会发出警告(如 ex#1 中)

Warning HAA0301 Heap allocation of closure Captures:
Run Code Online (Sandbox Code Playgroud)

造成这种情况的原因是什么以及如何解决?

谢谢!

c# clr heap-memory asp.net-core-2.1

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

update-database -force命令不更新实体框架代码中的基础 - 第一

可能这个问题似乎重复了.但这是我面对命令的问题.

如果我运行此命令,

update-database -force
Run Code Online (Sandbox Code Playgroud)

我得到的第一个错误..

数据库中已经有一个名为tblAbc的对象

然后我用google搜索,每次我得到一个stackoverflow链接,建议运行 Add-Migration Initial -IgnoreChanges

如果我运行此命令然后运行更新命令,则无错误 - 正在运行种子方法

但它不会将数据库与新更新同步

然后我尝试了很多次但同样的问题,因此我找了一些替代解决方案而且我得到了.

使用update-database -Script但是如果我运行此命令并得到以下错误.

用户癌症保存对话框

然后我尝试通过打开SQL Managment Studio来解决这个问题

工具>>选项>>设计器>>取消选中防止需要表重新创建的保存更改

但在此之后也出现同样的错误信息.

然后我尝试在我的上下文类中添加以下配置

System.Data.Entity.Database.SetInitializer(new MigrateDatabaseToLatestVersion  <context, Configuration>());
Run Code Online (Sandbox Code Playgroud)

它运行成功并运行种子方法,但它不同步最新的更新.

sql-server asp.net-mvc entity-framework ef-code-first

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