小编Rui*_*mba的帖子

使用LINQtoSQL获取随机行

有没有办法使用LINQToSQL从表中返回一个随机行?

.net linq linq-to-sql

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

iOS:不明确的属性合成行为.与继承有关

我正在使用AppCode它并在一个非常大的项目的代码中标记了一个有趣的情况.弧前.

子类定义并合成一个名为delegate的属性.实际上财产声明已经被注释掉了!但@synthesize delegate = delegate_;声明被遗忘了.

代码编译,可能是因为基类定义并合成了一个也称为委托的属性,并将其与具有相同名称的后备变量合成: @synthesize delegate = delegate_;

我的问题是:将消息发送给代理人

a)基类方法和

b)在子类方法中.

AppCode 将子类中的synthesize语句标记为错误:

属性'委托'的访问者已经与实例变量'delegate_'合成

objective-c ios

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

如何使用C#表达式树创建LINQ友好的"return false"表达式?

我有一些代码可以根据用户输入动态构建一些搜索条件,从而导致Expression<Func<T, bool>>传递给LINQ .Where()方法.当输入存在时它工作正常,但是当输入存在时,我想创建一个简单的'return false;' 声明,以便不返回任何结果.

下面是我当前的尝试,但是当它传递给.Where()方法时,它会抛出一个NotSupportedException"类型为'Block'的未知LINQ表达式."

var parameter = Expression.Parameter(typeof(T), "x");
var falseValue = Expression.Constant(false);
var returnTarget = Expression.Label(typeof (bool));

var returnFalseExpression = Expression.Block(Expression.Return(returnTarget, falseValue), Expression.Label(returnTarget, falseValue));
var lambdaExpression = Expression.Lambda<Func<T, bool>>(returnFalseExpression, parameter);
Run Code Online (Sandbox Code Playgroud)

如何构建一个可以由LINQ解释的'return false'表达式?

.net c# linq expression-trees

3
推荐指数
2
解决办法
1685
查看次数

在Entity Framework 4.1中使用TransactionScope的多个dbcontext的SaveChanges()

我使用的SaveChanges()方法如下:

objAdbContext 数据库 A

objBdbContext 数据库 B

更新DB A的表,如下所示

public string SaveA()
{

//Some stuff

  objAdbContext.SaveChanges();

  string result=UpdateDatabaseB(some parameters)

  //Some stuff

}


public string UpdateDatabaseB(some parameters)

{

  //Some stuff

   objBdbContext.SaveChanges();

  return "Success";

}
Run Code Online (Sandbox Code Playgroud)

此案例数据库B未获得更新.这是更新多个数据库的正确方法吗?

两者都是独立的数据库以及如何在这种情况下实现TransactionScope?

.net c# entity-framework entity-framework-4 asp.net-mvc-3-areas

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

C#:嵌套类的构造函数使得"由于保护级别而无法访问"

我有这段代码,并生成错误,因为我已经添加到其类的构造函数中.

class NestedClass
{
   class A
   {
      A() {}
   }

   class B
   {
       // no constructor
   }

   public static void run()
   {
     A a = new A();  // error
     B b = new B(); // no error
   }
}
Run Code Online (Sandbox Code Playgroud)

错误是:

NestedExample.A is inaccessible due to protection level
Run Code Online (Sandbox Code Playgroud)

请帮我解释一下.

谢谢 :)

.net c# oop class

3
推荐指数
2
解决办法
1203
查看次数

List.Clear(); vs List <T> = new List <T>(); 垃圾收集性能

我正在开发一个带有大量AI的游戏,并注意到我的垃圾收集器每秒收集3-4次物体,这真的会伤害性能并在帧速率下降之前将敌人的数量限制在120.我分析了代码并发现罪魁祸首是我的碰撞检测代码,其中我有一个函数被调用多次,一个帧生成一个投影到轴上的列表.代码就像

public List<Vector2> foo()
{
    List<Vector2> projections = new List<Vector2>();

    // Calculate and return projections
}
Run Code Online (Sandbox Code Playgroud)

还有一些其他函数也在每次调用时创建新列表,并且我每个函数调用都会生成新列表,支持将一个vector2s列表存储为类的字段,这样我就不会调用每个函数的新列表呼叫.这将垃圾收集呼叫从每秒3-4次减少到每10-20秒一次,这使得我可以在帧率下降之前在地图上获得400-500个敌人.

新功能看起来像:

public List<Vector2> foo()
{
    // projections is now a field of this class so we just clear it each function call
    projections.Clear();

    // Calculate and return projections
}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么List.Clear方法比List = new List()招致更少的垃圾收集?当你调用clear时,我已经对列表中的项发生了什么进行了一些研究,当它们没有引用时看起来好像它们应该被垃圾收集,所以我的项目正在函数内创建,所以当函数退出时并且下次调用清除列表,以前的项目是否也应该被垃圾收集?

我的理解是,清除的项目应该是垃圾收集,就像我调用List = new List一样.很明显,当我切换到List.Clear()时,我的垃圾收集量大大减少了.以下是我用来试图了解我的列表项中发生的事情的链接.

.net c# garbage-collection list

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

如何在 ASP.NET Core 2.1 中出现第一次错误后停止验证

我知道针对其他框架和语言多次询问这个问题,但我想知道一旦模型验证在 ASP.NET Core 2.1 中出现第一个错误,我如何才能真正停止模型验证?

    [Required(ErrorMessage = Email.requiredErrorMessage)]
    [DataType(DataType.EmailAddress, ErrorMessage = Email.formatErrorMessage)]
    [StringLength(Email.maximumLength, MinimumLength = Email.minimumLength, ErrorMessage = Email.rangeErrorMessage)]
    [EmailExists(ErrorMessage = Email.doesNotExistsMessage)]
    public string email { get; set; }

    [Required(ErrorMessage = ConfirmationCode.requiredErrorMessage)]
    [RegularExpression(ConfirmationCode.regularExpression, ErrorMessage = ConfirmationCode.formatErrorMessage)]
    public string confirmationCode { get; set; }
Run Code Online (Sandbox Code Playgroud)

上面的代码是 API 模型验证,在发出补丁请求时,我收到以下响应:

"email":[
"This email does not exist in database"
],
"confirmationCode":[
"Confirmation code format is invalid"
]
}
Run Code Online (Sandbox Code Playgroud)

我不希望模型验证在确保数据库中不存在电子邮件时继续,只需返回该错误并且不再继续验证。

c# model-validation asp.net-core-webapi asp.net-core-2.1

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

C# 中的太平洋时间,无论夏令时如何

我需要始终在我的数据库上标记太平洋时间,无论是八月还是二月。太平洋时间是一年中任何时间的实际美国西海岸时间:

  • 夏令时期间 PT = PDT(太平洋夏令时间)= UTC - 7
  • 非夏令时期间 PT = PST(太平洋标准时间 0 = UTC - 8

我正在使用 C# 并执行以下操作:

TimeZoneInfo pacificZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
CreatedDate = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, pacificZone);
Run Code Online (Sandbox Code Playgroud)

这是否会自动考虑夏令时,或者我是否需要通过这样做来考虑这一点:

TimeZoneInfo pacificZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
CreatedDate = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, pacificZone);
if (!TimeZoneInfo.Local.IsDaylightSavingTime(CreatedDate))
{
       CreatedDate = CreatedDate.AddHours(-1);
}
Run Code Online (Sandbox Code Playgroud)

.net c#

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

Mongodb C# 查询排序超出了内存限制

我有 2 周的时间学习和使用 MongoDB,我正在使用 DataGridview 构建一个简单的 WinForm 应用程序。

一切正常,但我添加了超过 1.000.000 个文档,现在它显示了这个错误:

MongoDB.Driver.MongoCommandException: '命令聚合失败:排序超出了 104857600 字节的内存限制,但没有选择外部排序。中止操作。通过 allowDiskUse:true 选择加入..

我整个周末都在谷歌上检查了如何使用 Aggreate allowDiskUse:true 但它也不起作用。

谢谢。

public void ReadAllDocuments()
{
    List<Clientes> list = collection.AsQueryable().OrderBy(q => q.Nombre).ToList();

    dataGridView1.DataSource = list;
    if (dataGridView1.Rows.Count > 0)
    {
        textBox1.Text = dataGridView1.Rows[0].Cells[0].Value.ToString();
        textBox2.Text = dataGridView1.Rows[0].Cells[1].Value.ToString();
        textBox3.Text = dataGridView1.Rows[0].Cells[2].Value.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

.net c# mongodb mongodb-query mongodb-.net-driver

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

单元测试在构建服务器上执行缓慢

我有一个.NET解决方案,其中包含一些作为Nuget软件包发布的Service Fabric库项目(.NET Standard 2.0)。解决方案(.NET Core 2.0)中的单元测试项目正在使用xUnit。

我注意到与以前的构建相比,在构建服务器上运行时测试花费了太多时间。

我尝试使用Reshaper / Visual Studio或Powershell脚本在本地计算机上运行测试,该过程不到5分钟:

$stopwatch = [system.diagnostics.stopwatch]::StartNew()

Get-ChildItem -recurse *tests.csproj | % { 
    dotnet test $_.FullName --no-build --no-restore;
}

$stopwatch.Stop()
Write-Host $stopwatch.Elapsed
Run Code Online (Sandbox Code Playgroud)

但是在Azure Devops中,单元测试任务需要花费超过27分钟才能完成!!!

这是构建管道/单元测试任务:

建立管道任务

有什么想法吗?

unit-testing xunit .net-core azure-service-fabric azure-devops

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