小编Jcl*_*Jcl的帖子

变量的=和=>有什么区别?

这两种添加方式有什么区别?

private string abc => "def";
Run Code Online (Sandbox Code Playgroud)

private string abc = "def";
Run Code Online (Sandbox Code Playgroud)

c#

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

使AddOrUpdate仅更改某些属性

这可能是一个简单的问题,但我是Code First和Migrations的新手,所以请耐心等待.我会将示例代码保持在最低限度以显示问题:

我有一个BaseAuditableEntity包括这个(除其他外,但让我们简化):

public abstract class BaseAuditableEntity : BaseEntity, IAuditableEntity
{
  public DateTime CreatedOn { get; set; }
  public DateTime LastModified { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在(例如)UserPOCO继承自它:

public class User : BaseAuditableEntity
{
  public string UserName { get; set; }
  public string PasswordHash { get; set; }
  public string FullName { get; set; }
  public string Email { get; set; }
  public bool Active { get; set; }
  public DateTime? LastLogin { get; set; }
} …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-migrations

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

将一个IQueryable类型转换为Linq to Entities中的接口

我的泛型类中有以下方法:

// This is the class declaration
public abstract class BaseService<TEntity, TKey> : IBaseService<TEntity, TKey> where TEntity : class, IEntity<TKey>

// The Method
public IQueryable<TEntity> GetActive()
{
    if (typeof(IActivable).IsAssignableFrom(typeof(TEntity)))
    {
        return this.repository.Get().Cast<IActivable>()
            .Where(q => q.Active)
            .Cast<TEntity>();
    }
    else
    {
        return this.Get();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是界面:

public interface IActivable
{
    bool Active { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

基本上,TEntity是一个实体(POCO)类,如果它们具有Active属性,则可以实现IActivable .我希望该方法返回所有Active值为true的记录.但是,我有这个错误:

无法将类型"WebTest.Models.Entities.Product"转换为"Data.IActivable"类型.LINQ to Entities仅支持转换EDM原语或枚举类型.

我理解为什么会出现这种错误.但关于SO的文章对我的案例没有任何有效的解决方案.用它Cast或其他方式可以实现吗?注意:我不想转换为IEnumerable,我想保留IQueryable.

c# linq entity-framework

8
推荐指数
2
解决办法
1975
查看次数

根据另一列填充一列

我正在尝试为考试制作一个表格,它看起来像:

ExamID | Name | Points | Grade

其中 Points 等于 0 到 100 之间的某个值。现在我想根据 Points 的值自动设置 Grade 的值。如果 > 90 等级=A...

执行此操作的 sql 查询的基本语法是什么?无论如何,我会根据我的需要调整它。

尝试使用 CASE 语法,但无法做到。我猜我应该使用 UPDATE 查询,而不是 INSERT 查询。

sql

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

IExtenderProvider 根据对象类型仅添加一些属性

我遇到了一个问题,我不知道这是否确实可行(如果有一种“hacky”方式,我全力以赴,但我还没有找到)。

我有一个IExtenderProvider组件,我用它来拥有自己的UITypeEditor第三方控件的某些属性(由于显而易见的原因,我无法更改它)。

这些控件不一定从同一个基类继承(如果继承,则该基类不一定具有我想要扩展的属性,并且这些属性是在同一个类中定义的)。

因此,假设我想为它们的属性Image, Glyph, LargeGlyph,创建一个替代属性。SmallGlyph

所以我有类似的东西:

[ProvideProperty("LargeGlyphCustom", typeof (object))]
[ProvideProperty("GlyphCustom", typeof(object))]
[ProvideProperty("SmallImageCustom", typeof(object))]
[ProvideProperty("LargeImageCustom", typeof(object))]
[ProvideProperty("ImageCustom", typeof(object))]
public class MyImageExtender : Component, IExtenderProvider
{
  private readonly Type[] _extendedTypes =
  {
    typeof (OtherControl),
    typeof (SomeOtherControl),
    typeof (AControl),
    typeof (AButton)
  };

  bool IExtenderProvider.CanExtend(object o)
  {
    if (!DesignMode) return false;
    return _extendedTypes.Any(t => t.IsInstanceOfType(o));
  } 

  // Implement the property setter and getter methods
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好。我可以在我期望的类型的控件上看到我的属性。

UITypeEditor但是,这些是控件中属性的替换(只是为了更改)。

我的方法的问题是我看到所有扩展类型中的所有扩展属性。

比如说,如果 …

c# windows-forms-designer winforms

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

在我的C#中缺少一些整数代码

我正在为学校做一些练习并遇到了问题.当我尝试计算数组中的字符时,它只是返回数组本身.谁能告诉我我错过了什么?代码在C#中.

public static int CountFor(int n)
{
        int count = 0;

        int[] a = new int[] {n};
        for (int i = 0; i < a.Length; i++)
        {
            count += i;
        }
        return count;
} 
Run Code Online (Sandbox Code Playgroud)

并在主要显示结果:

Console.WriteLine(CountFor(1024));
Console.ReadKey();
Run Code Online (Sandbox Code Playgroud)

c# arrays for-loop character counting

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

如何使用C#获取给定域名的"NS"记录?

我对给定DomainName的NameServer有一个很大的问题.实际上我想要做的是一个简单的交易,但在互联网上搜索了很多代码片段,还有nuget包管理器上的库,我找不到解决方案.

我有域名,如"www.example.com",我想通过使用C#代码获取其域服务器.

nuget上有一些库,但这些库都使用'whois'搜索机制,但我不能完全信任它们.因为他们返回的字符串就像网页上的任何搜索结果一样,并且每个字符串结果可能是不同的,因为在幕后使用不同的搜索网站.

一些网络专家说我应该在powershell上使用类似"nslookup"的命令,使用C#来检索可信任的结果.

c# dns

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

C#执行goto语句后如何返回上一步?

这是我的代码:

private void Mymethod()
{
    if(animal == "Dog")
    {
        goto LabelMonsters;
    }

    //return here after goto LabelMonsters executes
    if (animal == "Cat")
    {
        goto LabelMonsters;
    }

    //another return here after goto LabelMonsters executes
    if (animal == "Bird")
    {
        goto LabelMonsters;
    }

    //Some long codes/execution here.
    return;

    LabelMonsters:
    //Some Code
}
Run Code Online (Sandbox Code Playgroud)

在我的示例中,我有几个if语句,在第一次执行goto语句之后,我必须返回到我的方法下的下一步.我试过继续但不工作.执行必须持续到最后.

c#

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