我将为我们的退出和新应用程序创建一个新的授权DLL。 我们希望为POCO类,OAuth和声明添加Identity 2.0主要功能。 (索赔真的很重要)标识2.0字符串或Int主键?
因此,首先想到的是主键是一个字符串。我知道这可以改变,但我也第一次研究为什么它是一个字符串,我发现这个答案: Why do the ASP.NET Identity interfaces use strings for primary and foreign keys?他们cleary指定该字符串'更好',以避免铸造,因为索赔确实使用字符串。
我们所有的当前应用程序都使用Int作为主键(自动增量)。
而不是盲目的和改变身份实现使用int我研究了更多,同一个答案建议一个解决方案是有一个字符串表示的ID。
喜欢的东西:
[Index(IsClustered = false)]
string Id
[Index(IsClustered = true)]
int LogicalId
我不知道什么是聚簇索引,但阅读它在某种程度上行是如何排列的物理磁盘,所以它是关于性能的,所以我会去用它作为正常。
我的问题是:
主要:什么是这种情况的最佳做法/建议吗?
- a)具有LogicalId INT,
- B)覆盖认同与诠释
- c中的默认实现),所有的INT转换为字符串(如GUID)
的情况下, LogicalId(a):
如果我们无法将PK用作字符串,那么这样做的目的是什么?如何在SaveChanges数据库上的新实体时增加LogicalId? EF会自动为我做到这一点?
与TKEY的作为INT倍率身份实现的情况下:(b)中
使用者ID上权利要求是:(i猜)总是字符串。如果我们为我们的用户使用多个外部提供商,那会很重要吗 是否可以创建EntityFramework for Int的具体实现?任何人都已经?
Uninstall-Package Indentity.EntityFramework
Install-Package Identity.EntityFrameworkInt
那将是很好:d
所有数据转换为字符串(C)
是不是疼痛GUID来工作吗?那些使用GUID的人你还有另一个更简单的标识符供公众使用吗? 无法停止映像客户服务:
我无法在我们的记录中找到您的用户,您能否提供您的用户ID?
哎哟
网站无法正常工作,当我点击50 {同类产品}
之一 - 什么是产品编号?
笑
我们有两个产品等,请删除一个。
- 当然,给我的产品ID
CUAC
+1固定User.Identity.GetUserId() –
我知道这是一个老问题,但会下降的问题,但对于这种情况。当数据库通过身份,自动增量列创建你的Id时,你有没有解决过这个问题?在注册我的用户得到保存到数据库,但在IdentityUser实例Id保持0(默认值为int),因为usermanager不读取数据库新创建的ID。任何帮助将不胜感激。谢谢! –
@deezg我还没有听说过这个问题。你可能有更好的运气开个问题 – Shoe