小编T.S*_*.S.的帖子

如何检查是否设置了标志组合的标志?

假设我有这个枚举:

[Flags]
enum Letters
{
     A = 1,
     B = 2,
     C = 4,
     AB = A | B,
     All = A | B | C,
}
Run Code Online (Sandbox Code Playgroud)

要检查是否AB已设置,我可以这样做:

if((letter & Letters.AB) == Letters.AB)
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法来检查组合标志常量的任何标志是否设置为以下?

if((letter & Letters.A) == Letters.A || (letter & Letters.B) == Letters.B)
Run Code Online (Sandbox Code Playgroud)

你可以换&一些东西吗?

对于像这样的二进制文件来说不太稳定......

c# enums flags

165
推荐指数
11
解决办法
14万
查看次数

任何方式选择而不会导致MySQL锁定?

查询:

SELECT COUNT(online.account_id) cnt from online;
Run Code Online (Sandbox Code Playgroud)

但是在线表也被事件修改,因此我经常可以通过运行看到锁定show processlist.

MySQL中是否有任何语法可以使select语句不引起锁定?

而且我忘了在上面提到它是在MySQL奴隶数据库上.

我加入my.cnf:transaction-isolation = READ-UNCOMMITTED 奴隶后会遇到错误:

错误'无法进行二进制日志记录.消息:InnoDB中的事务级别"READ-UNCOMMITTED"对于查询的binlog模式"STATEMENT"不安全

那么,是否有兼容的方法来做到这一点?

mysql locking

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

从显式类型的ASP.NET Core API控制器(不是IActionResult)返回404

ASP.NET Core API控制器通常返回显式类型(默认情况下,如果您创建一个新项目),如下所示:

[Route("api/[controller]")]
public class ThingsController : Controller
{
    // GET api/things
    [HttpGet]
    public async Task<IEnumerable<Thing>> GetAsync()
    {
        //...
    }

    // GET api/things/5
    [HttpGet("{id}")]
    public async Task<Thing> GetAsync(int id)
    {
        Thing thingFromDB = await GetThingFromDBAsync();
        if(thingFromDB == null)
            return null; // This returns HTTP 204

        // Process thingFromDB, blah blah blah
        return thing;
    }

    // POST api/things
    [HttpPost]
    public void Post([FromBody]Thing thing)
    {
        //..
    }

    //... and so on...
}
Run Code Online (Sandbox Code Playgroud)

问题是return null;- 它返回HTTP 204:成功,没有内容.

然后,许多客户端Javascript组件将其视为成功,因此代码如下:

const …
Run Code Online (Sandbox Code Playgroud)

c# http-status-code-404 asp.net-core-mvc asp.net-core asp.net-core-webapi

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

在Entity Framework上创建外键关系的问题

我在我的Entity Framework流畅的Api中配置外键关系时遇到问题:

以下是报告的负责人:

 public class Testata
{
    public Testata() { Details = new List<Dettaglio>(); }
    public virtual int IDTEST { get; set; }
    public virtual string Value { get; set; }
    public virtual int IDDETAIL { get; set; }
    public virtual string IDTESTALT { get; set; }
    public virtual byte[] BLOB { get; set; }

    public virtual IList<Dettaglio> Details { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是报告的细节

public class Dettaglio
{
    public virtual int IDDETAIL { get; set; }
    public virtual int …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework foreign-keys ef-code-first

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

MySQL连接运算符

我不知道MySQL的连接运算符.

我已尝试此代码进行连接:

SELECT vend_name || ' (' || vend_country || ')'
FROM Vendors
ORDER BY vend_name;
Run Code Online (Sandbox Code Playgroud)

但它没有用.我应该使用哪个运算符来连接字符串?

mysql sql concatenation

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

Asp.Net Web API错误:'ObjectContent`1'类型无法序列化内容类型'application/xml的响应主体; 字符集= UTF-8'

最简单的例子,我得到一个集合并尝试通过Web API输出:

// GET api/items
public IEnumerable<Item> Get()
{
    return MyContext.Items.ToList();
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:


'System.Data.Objects.ObjectQuery`1 [Dcip.Ams.BO.EquipmentWarranty]' 类型的对象 无法转换为类型
'System.Data.Entity.DbSet`1 [Dcip.Ams.BO.EquipmentWarranty]'

这是与新代理相关的一个非常常见的错误,我知道我可以通过设置来修复它:

MyContext.Configuration.ProxyCreationEnabled = false;
Run Code Online (Sandbox Code Playgroud)

但这违背了我想要做的很多事情的目的.有没有更好的办法?

entity-framework entity-framework-4 asp.net-web-api

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

IF内的ERRORLEVEL

只是偶然发现了一个奇怪的事情,%ERRORLEVEL%想知道是否有人知道为什么以及是否有办法解决它.从本质上讲,似乎if语句中执行的命令不设置%ERRORLEVEL%变量.的ERRORLEVEL(如IF ERRORLEVEL 1,这是从不同的IF %ERRORLEVEL% EQU 1)检查似乎还在正常工作的,所以我可能可以解决它,但它仍然是很好能够打印错误水平.用于调试或其他.

@echo off
Set TESTVAR=1

tasklist | find /I "IsntRunning.exe" > NUL
echo OUTSIDE_IF %ERRORLEVEL%

ThisWillSetErrorLevelTo9009ieNotRecognizedCommand

tasklist | find /I "IsntRunning.exe" > NUL
echo OUTSIDE_IF %ERRORLEVEL%

ThisWillSetErrorLevelTo9009ieNotRecognizedCommand

IF %TESTVAR% EQU 1 (
    Set ERRORLEVEL=
    tasklist | find /I "IsntRunning.exe" > NUL
    echo INSIDE_IF  ERRORLEVEL %ERRORLEVEL%

    IF ERRORLEVEL 1 (
        echo INSIDE_IF2  ERRORLEVEL GREQ 1 %ERRORLEVEL%
    )
    IF ERRORLEVEL 2 (
        echo INSIDE_IF2  ERRORLEVEL GREQ 2 …
Run Code Online (Sandbox Code Playgroud)

batch-file errorlevel

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

TFS搁置从一个分支迁移到另一个分支

我必须将在一个分支中创建的shelveset称为"开发",再将另一个称为"发布".这样我就可以直接合并shelveset然后发布为开发分支创建的版本.

我使用的命令是:

tfpt unshelve "shelveset name" /migrate /source:"$...development" /target:"$...Release"
Run Code Online (Sandbox Code Playgroud)

它显示此错误:

无法确定工作区

tfs migrate shelveset tfs2010

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

C#管理结构中的字符串

我知道字符串具有可变长度,因此它们需要存储器中的可变空间.当我们在a中定义一个字符串项时struct,其struct大小的长度将是可变的.

较旧的语言通过使用固定长度的字符串来管理它.但是,没有办法在C#中定义固定长度的字符串,而C#管理structs中的普通字符串非常好.

当我们定义这样的structs数组或简单的字符串数组时,这变得更加奇怪.由于一个字符串长度的任何变化(减少/增加),所有正向structs必须被移位.

C#如何处理结构中的可变长度字符串?

c# string struct

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

在使用条件断点和立即窗口时获取"无法评估安全功能"

在开发.NET Core 2.0应用程序时,我遇到了条件断点,监视评估和即时窗口评估的问题.我收到以下错误:

modifiers.GroupBy(c => c.Modifier.Group).ToList()
抛出类型'System.ArgumentException'的异常
数据:{System.Collections.ListDictionaryInternal}
HResult:-2147024809
HelpLink:null
InnerException:null
消息:"无法评估安全功能."
ParamName:null
源:null
StackTrace:null
TargetSite:null

什么可能导致这个问题?有解决方法吗?这在.NET Framework 4.x应用程序中运行良好.


编辑:添加代码示例

使用以下类:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Group { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在正常的控制台应用程序中,以.NET Core 2.0为目标:

static void Main(string[] args)
{
    var people = new List<Person>
    {
        new Person { Age = 17, Name = "Person A", Group = "Group A" },
        new Person { …
Run Code Online (Sandbox Code Playgroud)

.net c# .net-core

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