小编Sir*_*ifi的帖子

使用[NotNull]作为方法的参数

从ASP.NET MVC的源代码中考虑以下代码:

public static IApplicationBuilder UseMvc(
            [NotNull] this IApplicationBuilder app,
            [NotNull] Action<IRouteBuilder> configureRoutes) {...}
Run Code Online (Sandbox Code Playgroud)

根据这个答案,带注释的参数不能为空.那为什么我可以将null传递给方法呢?也就是说,在下面的情况下,为什么编译器没有给我任何错误?

app.UseMvc(null);
Run Code Online (Sandbox Code Playgroud)

c#

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

C#如何知道文字的类型?

考虑以下代码:

double i = 0xF0000000;
Console.WriteLine(0xF0000000.GetType());
Console.WriteLine(i.GetType());
Run Code Online (Sandbox Code Playgroud)

为什么C#打印System.UInt32第一个和System.Double第二个?

那是因为,默认情况下编译器会将文字推断为类型var

c#

15
推荐指数
2
解决办法
3728
查看次数

如何从EF Core中的模型生成类图?

我们正在使用ASP.NET MVC Core和Entity Framework Core构建应用程序,我们在应用程序中拥有一大堆类.在以前版本的Entity Framework中,我们将使用此方法为类图生成edmx文件:

void ExportMappings(DbContext context, string edmxFile)
{
     var settings = new XmlWriterSettings { Indent = true };
     using (XmlWriter writer = XmlWriter.Create(edmxFile, settings))
     {
         System.Data.Entity.Infrastructure.EdmxWriter.WriteEdmx(context, writer);
     }
}
Run Code Online (Sandbox Code Playgroud)

但似乎EF Core中没有这样的功能.我想知道在Entity Framework Core中是否有相同的版本.

c# entity-framework-core

14
推荐指数
2
解决办法
6106
查看次数

如何在ASP.NET Identity中定义不同的用户类型?

在我的应用程序中,我使用的是ASP.NET身份,我有不同类型的用户(教师,学生,...),他们有自己的属性,对于我有老师Experience, Languages Spoken, Certifications, Awards, Affiliations, ...,对于学生,我有不同的属性.因此,由于每个用户的信息不同,我不能使用角色.所以他们实际上都是用户,我的意思是他们可以登录我的网站.此外,他们还有注册的常用信息:First Name, Last Name, Email, Password您现在的想法是什么?这样做的最佳选择是什么?我应该为每个继承的用户创建类IdentityUser<int, CustomUserLogin, CustomUserRole, CustomUserClaim>吗?任何的想法?

PS:我已经找到了一些解决方案,例如这里建议使用声明但是它对我来说不够清楚,实际上声明是难题的一部分而且我没有得到它们是什么?:),最好有例子.谢谢

asp.net asp.net-mvc asp.net-identity-2

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

如何在Linq中使用N''到非Unicode字符的实体?

如何在Linq to Entity中使用N'',例如在T-SQL中我们有这个代码:

select *from students where name=N'?????? ?????'
Run Code Online (Sandbox Code Playgroud)

我有这个代码:

var query = from p in dbContext.Students
                            where p.Name == "?????? ?????"
                            select p;
Run Code Online (Sandbox Code Playgroud)

我如何使用Linq to Entity执行此操作?

我发现了这个 :

 var query = (from p in dbContext.Students
                             where p.Name == EntityFunctions.AsNonUnicode("?????? ?????")
                            select p);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

谢谢.

c# t-sql linq-to-entities

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

在Windows上卸载Xamarin

我想从我的机器中删除以前的xamarin并安装新版本(Xamarin VisualStudio 3.9.236),但是当我尝试安装此版本时,我收到此错误:

旧版Xamarin无法删除.联系您的技术支持小组.

任何的想法?PS:我看过这篇文章但仍有同样的问题.

visual-studio xamarin

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

ASP.NET 5如何注入启动的依赖项?

我正在研究ASP.NET 5文档(它比旧版本更好,更好.)我知道ASP.NET 5包含一个简单的内置控制反转(IoC)容器,默认支持构造函数注入.据我所知,配置服务和依赖是在ConfigureServices()方法内部完成的.

ConfigureServices()方法在StartUp方法之后调用.

所以我的问题是:ASP.NET 5如何在内部注入Startup的依赖项?

我想知道,因为如果我想注入另一个依赖项,例如IFooEnviroment我该怎么做?

dependency-injection asp.net-core

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

C#中的Voldemort类型

正如您可能在D语言中所知,我们有一种称为Voldemort类型的能力,它们被用作实现特定范围函数的内部类型:

auto createVoldemortType(int value)
{
    struct TheUnnameable
    {
        int getValue() { return value; }
    }
    return TheUnnameable();
}
Run Code Online (Sandbox Code Playgroud)

以下是Voldemort类型的使用方法:

auto voldemort = createVoldemortType(123);
writeln(voldemort.getValue());  // prints 123
Run Code Online (Sandbox Code Playgroud)

现在我想确保,这是否等同delegate于C#?

public static void Main()
{
    var voldemort = createVoldemortType(123);
    Console.WriteLine(voldemort());

}
public static Func<int> createVoldemortType(int value)
{
    Func<int> theUnnameable = delegate()
                              {
                                    return value;
                              };
    return theUnnameable;
} 
Run Code Online (Sandbox Code Playgroud)

c# closures d

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

从此表中选择

我在SQL Server中有一个表,tbl_spe它包含一些计算机的规范,就像CPU, RAM,... 我想要选择具有这种条件的所有行:它们的RAM小于1GB的所有行我们可以简单地编写这个查询:

Select * from tbl_spe where RAM <= 1
Run Code Online (Sandbox Code Playgroud)

或类似的东西,但问题是关于表的数据:

ID  RAM

159 2GB DDR2
160 256MB DDR
161 3GB DDR2
162 512MB DDR
Run Code Online (Sandbox Code Playgroud)

如何提取数字的RAM字段?并告诉查询选择他们的RAM小于1GB的所有行?

sql t-sql

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

在DbContext中访问HttpContext.Current.User.Identity.Name

我将使用UserName来跟踪“创建”和“修改”字段。为此,我直接在DbContext中引用了System.Web程序集:

public void auditFields()
 {
            var auditDate = DateTime.Now;
            foreach (var entry in this.ChangeTracker.Entries<BaseEntity>())
            {
                switch (entry.State)
                {
                    case EntityState.Detached:
                        break;
                    case EntityState.Unchanged:
                        break;
                    case EntityState.Added:
                        entry.Entity.CreatedOn = auditDate;
                        entry.Entity.ModifiedOn = auditDate;
                        entry.Entity.CreatedBy = HttpContext.Current.User.Identity.Name ?? "anonymouse";
                        entry.Entity.ModifiedBy = HttpContext.Current.User.Identity.Name ?? "anonymouse";
                        break;
                    case EntityState.Deleted:
                        break;
                    case EntityState.Modified:
                        entry.Entity.ModifiedOn = auditDate;
                        entry.Entity.ModifiedBy = HttpContext.Current.User.Identity.Name ?? "anonymouse";
                        break;
                    default:
                        throw new ArgumentOutOfRangeException();
                }
            }
}
Run Code Online (Sandbox Code Playgroud)

它可以正常工作,但是将DbContext与HttpContext紧密结合在一起,如果我们将DbContext暴露在非Web环境中,这不是一个好主意。所以我用这种方式:

public class ApplicationDbContext :
        IdentityDbContext<ApplicationUser, CustomRole, int, CustomUserLogin, CustomUserRole, CustomUserClaim>,
        IUnitOfWork
{
    public ApplicationDbContext()
            : …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework dbcontext structuremap3

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