小编ECC*_*Dan的帖子

如何使用Entity Framework 6 Code First设置默认值约束?

在旧版应用程序中,大多数字符串属性不能为null,并且需要具有默认值string.empty.

我知道可以通过迁移执行此操作,但我正在寻找使用流畅配置界面执行此操作的方法:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Properties<string>().Configure(c =>
        {
            c.HasMaxLength(255);

            if (!c.ClrPropertyInfo.IsDefined(typeof (NullableAttribute), false))
            {
                c.IsRequired();
                // I want to set a default value (string.empty) here.
            }
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,或者我注定要初始化实体构造函数中的所有字符串?

.net c# entity-framework ef-code-first entity-framework-6

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

如何在S3的response-content-disposition头中使用unicode字符?

我们使用此代码生成请求并设置下载文件名:

var request = new GetPreSignedUrlRequest()
    .WithBucketName(S3BucketName)
    .WithExpires(requestExpirationTime)
    .WithKey(file.S3Key)
    .WithResponseHeaderOverrides(
        new ResponseHeaderOverrides()
            .WithContentDisposition("attachment; filename=\"Unicode FileName ? Test.txt\""));
Run Code Online (Sandbox Code Playgroud)

这会生成以下链接:

/s3path?AWSAccessKeyId=xxxx&Expires=1377199946&response-content-disposition=attachment%3B%20filename%3D"Unicode%20FileName%20?%20Test.txt"&Signature=xxxxx
Run Code Online (Sandbox Code Playgroud)

这给出了这个错误:

<Error>
    <Code>InvalidArgument</Code>
    <Message>
        Header value cannot be represented using ISO-8859-1.
    </Message>
    <ArgumentValue>attachment; filename="Unicode ? filename.txt"</ArgumentValue>
    <ArgumentName>response-content-disposition</ArgumentName>
    <RequestId>368BD60502854514</RequestId>
    <HostId>
        BiUUYp4d9iXfK68jKVxWZEp25m5je166M0ZY1VmoPk9pN9A69HLHcff6WIVLWk1B
    </HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

我们如何在response-content-disposition头中使用非ISO-8859-1字符,例如unicode?

c# amazon-s3 amazon-web-services

9
推荐指数
2
解决办法
3877
查看次数

为什么实体框架在WHERE子句中添加不必要的(AND [param] IS NOT NULL)?

鉴于这个简单的模型:

public partial class UserColumnGrid
    {
        public int UserColumnGridID { get; set; }
        public int UserID { get; set; }
        public int ColumnGridID { get; set; }
        public int ColumnWidth { get; set; }
        public bool IsVisible { get; set; }

        public virtual ColumnGrid ColumnGrid { get; set; }
        public virtual User User { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

而这个简单的查询:(userID是一个i​​nt)

dbContext.UserColumnGrid.Where(ucg => ucg.UserID == userID).ToList();
Run Code Online (Sandbox Code Playgroud)

生成以下查询:

SELECT [Extent1].[UserColumnGridID]  AS [UserColumnGridID],
       [Extent1].[UserID]            AS [UserID],
       [Extent1].[ColumnGridID]      AS [ColumnGridID],
       [Extent1].[ColumnWidth]       AS [ColumnWidth],
       [Extent1].[IsVisible] …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework entity-framework-6

8
推荐指数
1
解决办法
878
查看次数

将令牌/ cookie传递给WCF服务的最佳策略?

我们正在.net 4.0上使用WCF构建Web服务.该服务将主要由ASP.net MVC前端使用,但也将由.net Windows应用程序使用.

由于我们不想保存用户凭据,所以提供的基本用户名/密码auth不会这样做,因此我考虑使用RNGCryptoServiceProvider.GetBytes()进行一次身份验证并创建一个简单的令牌(或者我应该将其称为cookie?)然后使用它来验证进一步的请求.

我已经研究了使用WCF进行安全性的各种常用方法,它们看起来过于复杂,特别是当我们想要做的只是将cookie传递给每个方法调用时.

将此cookie从WCF客户端传递给我们的WCF服务的最佳策略是什么?首选方法将尽可能与WCF的安全架构紧密结合.

到目前为止,我一直在使用自定义HTTP标头自定义授权,但我不相信哪种方法更合适,如果有的话.

请记住,对于ASP网站,将为每个请求创建一个新频道,同时它将在Windows应用上重复使用.

c# asp.net rest wcf wcf-security

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

通过导航属性访问外键ID属性时如何避免延迟加载?

我正在将项目从 NHibernate 转换为实体框架 6。

鉴于这个简单的模型:

public class User
{
    public int ID { get; set; }
    public string FullName { get; set; }
    public virtual Organization Organization { get; set; }
    // [...]
}

public class Organization
{
    public int ID { get; set; }
    public string Name { get; set; }
    public virtual List<User> Users { get; set; }
    // [...]
}
Run Code Online (Sandbox Code Playgroud)

通过组织导航属性访问主键 (ID) 将导致整个组织实体加载到上下文中:

foreach(var user in db.Users)
    Console.WriteLine(user.Organization.ID);
Run Code Online (Sandbox Code Playgroud)

鉴于 OrganizationID 外键是 User 行的一部分,我应该能够访问它而不会导致整个实体的延迟加载(事实上,NHibernate 正确地做到了这一点)。

没有将外键 ID 的属性添加到我所有的 …

c# entity-framework ef-code-first entity-framework-6

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