小编Car*_*lis的帖子

在EF Model First设计中添加索引

我喜欢使用Entity Framework(4)进行模型优化设计的选项.但是,除了主键之外,我还无法找到如何向表中添加其他索引.

这在视觉设计师中是否可行?或者您是否需要在创建数据库后手动添加索引(这将是设计人员的缺点)?

.net entity-framework ef-model-first

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

如何将表与自动编号主键合并?

我想每个人偶尔遇到这个问题:你有两个表有自动编号需要合并的主键.使用自动编号主键有利于说应用程序生成的密钥有很多很好的理由,但与其他表合并必然是最大的缺点之一.

出现的一些问题是重叠的id和不同步的外键.我想听听你解决这个问题的方法.我总是遇到问题,所以如果有人有某种通用的解决方案,我很好奇.

- 编辑 -

在回答建议使用guid或其他非数字键的答案时,有些情况事先提醒使用自动编号键(后来你后悔),或者你正在接管其他人的项目,或者你得到一些你必须使用的遗留数据库.所以我真的在找一个你无法控制数据库设计的解决方案.

sql-server database-design identity-column

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

如何关闭MVC请求的缓存,而不是IIS7中的静态文件?

我正在开发一个ASP.NET MVC应用程序.大多数控制器操作都不应该被缓存.因此我输出no-cache标头Application_BeginRequest:

    protected void Application_BeginRequest()
    {
        HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        HttpContext.Current.Response.Cache.SetValidUntilExpires(false);
        HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        HttpContext.Current.Response.Cache.SetNoStore();
    }
Run Code Online (Sandbox Code Playgroud)

应用程序在IIS7上运行,并带有模块配置设置runAllManagedModulesForAllRequests="true".这意味着所有静态文件也会通过请求管道(并禁用缓存).

为这些静态文件启用缓存的最佳方法是什么?在设置响应缓存标头之前是否必须检查扩展?Application_BeginRequest或者是否有更简单的方法(例如完全绕过静态文件的请求管道)?

.net c# iis asp.net-mvc caching

6
推荐指数
1
解决办法
2512
查看次数

不允许使用MVC/ajax获取请求的安全原因是什么?

除非明确启用,否则ASP.NET MVC不再允许json GET请求JsonRequestBehavior.AllowGet.我有几个我希望缓存的AJAX请求,所以我想允许GET请求.

启用GET请求的确切安全含义究竟是什么?如何以其他方式对抗它们?

asp.net-mvc jquery json asp.net-mvc-3

6
推荐指数
0
解决办法
1304
查看次数

使用内部部署ADFS STS在ASP.NET应用程序和Office365之间单点登录

我正在构建一个ASP.NET Web应用程序,使用Windows Identity Foundation对用户进行身份验证.

该组织有一个内部部署ADFS STS.他们的Office365通过Microsoft Federation Gateway与内部部署STS进行身份验证.新的Web应用程序还将针对带有WIF的内部部署STS进行身份验证.

我可以在新应用程序和Office365环境之间建立静默单一登录吗?因此,用户登录Web应用程序后无需登录Office365,反之亦然.

asp.net wif adfs2.0 office365

6
推荐指数
1
解决办法
2844
查看次数

Azure ServiceBus:所有主题订阅者必须处理消息

我刚刚开始使用Azure ServiceBus.有一点我不完全清楚,我很难找到答案.

如果我打电话message.Complete()给订阅消息,这是否意味着此消息将不再发送给任何其他订阅者,或者我是否仅为当前订阅者完成此消息?换句话说,服务总线是否跟踪每个订户或每个订阅的消息?

在我的特定用例中,我希望消息由所有订阅者处理,而不是由任何/一个订阅者处理.这主题有可能吗?

.net azure azureservicebus azure-servicebus-topics

5
推荐指数
2
解决办法
1682
查看次数

使用.NET SDK在DynamoDB中保留动态对象

我正在尝试使用.NET SDK将以下类保留到DynamoDB:

public class MyClass
{
    public string Id { get; set; }

    public string Name { get; set; }

    public object Settings { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

问题在于Settings属性.它可以是任何类型的对象,我事先并不知道可能分配给它的是什么.当我尝试将其持久化到DynamoDB时,我得到以下异常:

System.InvalidOperationException: 'Type System.Object is unsupported, it has no supported members'
Run Code Online (Sandbox Code Playgroud)

文档模型和对象持久性模型方法都会导致相同的异常.

有没有办法在DynamoDB中保留这些对象?其他数据库(如MongoDB和Azure DocumentDB)可以毫无问题地执行此操作,并且可以将它们反序列化为具有鉴别器的正确类型,或者作为动态JSON对象.

.net c# amazon-dynamodb asp.net-core

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

实体框架4将DateTimeOffset映射到Visual Studio 2010中的SQL日期时间

我正在使用带有.NET/Entity Framework 4 RTM的Visual Studio 2010 RTM和模型驱动的设计方法.当我使用DateTimeOffset字段创建实体时,EF建模器会尝试将DateTimeOffset映射到SQL日期时间而不是SQL datetimeoffset.我正在使用SQL Server 2008 Express,因此数据库中支持datetimeoffset.

Visual Studio出现此错误:

2019年错误:指定的成员映射无效.类型'Data.SqlStorage.MyType'中成员'Created'的类型'Edm.DateTimeOffset [Nullable = False,DefaultValue =,Precision =]'与'SqlServer.datetime不兼容[Nullable = False,DefaultValue =,Precision = 3]'成员'创建'类型'Data.SqlStorage.Store.MyTypes

如果我直接在EDMX StorageModels xml部分编辑类型,我会收到以下错误:

错误40:类型datetimeoffset未使用命名空间或别名限定.只有PrimitiveTypes可以无限制地使用.

为什么建模者没有正确地将其映射到SQL datetimeoffset类型?当我还在使用Visual Studio 2010和.NET framework 4的beta版本时,也会出现此问题.

entity-framework datetimeoffset visual-studio-2010

4
推荐指数
1
解决办法
6099
查看次数

实体框架4:如何在生成的查询中强制执行WHERE子句顺序

假设下表MyObjects:

Id (PK, int)
DecimalField (decimal)
TextField (nvarchar)
Run Code Online (Sandbox Code Playgroud)

我已经添加了一个额外的索引DecimalField.

考虑以下LINQ to Entities查询来检索对象:

db.MyObjects.FirstOrDefault(r => r.DecimalField == localValue1 && r.TextField == localValue2)
Run Code Online (Sandbox Code Playgroud)

由于索引,重要的是EF生成的查询使WHERE子句中的属性顺序保持相同(即DecimalField第一和TextField第二),否则将发生表扫描并且索引无用.如何强制EF在WHERE子句中保持某个顺序?ad hoc和编译查询之间有区别吗?

c# sql-server linq-to-entities entity-framework

4
推荐指数
1
解决办法
1068
查看次数

大表的最佳主键格式

我正在开发一个具有一些潜在大数据表的asp.net应用程序.我想知道定义主键的最佳方法是什么.我知道之前有人问过,但由于这是针对特定情况的,我认为这个问题是有效的.

我在SQL Server 2008数据库上使用Entity Framework 4.

考虑以下因素,定义主键有哪些可能性:

  1. 很有可能随着时间的推移,记录数将超过32位边界,因此无法实现自动增量整数.
  2. 无法在表中的其他列的组合上定义主键.
  3. 出于数据同步的原因,应用程序生成的id优先于数据库生成的id.此外,在EF中,它意味着额外往返数据库以检索新生成的id.
  4. 对于插入性能,顺序键是更可取的.
  5. 我认为(顺序)guid的空间要求是一个缺点.
  6. 对于字符串id,最好不区分大小写.

到目前为止,我自己想出的是一个自定义算法,它生成一个日期时间部分和一个随机部分,转换为十六进制字符串表示.这让我的字符串略短于guid.我仍然可以将它转换为base64,但这将违反项目nr 6.

谢谢你的建议.

c# sql-server asp.net entity-framework sql-server-2008

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