标签: guid

如果您要进行复制,为什么GUID是PK的最佳选择?

我正在构建一个带有Oracle后端的Intranet Web应用程序.由于对此讨论不重要的原因,Oracle DB将在另一台服务器上复制.我有理由相信我们将使用Oracle Basic Replication,而不是Advanced.

有人可以向我解释为什么围绕主键的大多数讨论都是这样的:

  • 在99%的情况下,使用自动递增的PK可以很好地使用PK
  • 如果您正在进行复制,则除外.然后为您的PK使用GUID.

似乎没有人解释为什么复制的异常,我不明白为什么.

replication database-design guid primary-key

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

将所有PK和FK GUID列和关系转换为int的最快方法是什么?

我目前正在开发一个ASP.NET MVC应用程序,在数据库中有大量的PK-FK关系.在开发之初,我正在与之合作的团队投票反对我对所有PK使用INT的建议......他们决定使用GUID.

长篇故事......团队分道扬and,现在我可以控制改变事物......我从WebForms切换到MVC,我想将所有的Guid转换为Ints ...我讨厌丑陋的URL就像"YUCK !!加上索引guid所涉及的开销......加上它可能对我的Linq to Entities模型没有帮助.

使用SQLServer 2008,ASP.NET MVC 2,Linq to Entities(实体框架)

任何人都知道快速将这些讨厌的guid转换成int的方法吗?

sql-server linq-to-entities database-design guid asp.net-mvc-2

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

SQL Server 2008 GUID列全为0

我希望这是我在最后做的一个简单的蠢事......

我的数据库中有一个表设置如下:

column name: widget_guid
data type: uniqueidentifier
allow nulls: false
default value: newid()
identity: false
row guid: true

创建记录(通过LINQ to SQL)时,此字段中的值被格式化为GUID但包含全0

我的假设是,当创建一个新记录时,将为该列自动生成一个guid,就像一个自动递增的行id.这不是真的吗?任何帮助将不胜感激.

谢谢.

sql guid sql-server-2008 linq-to-sql

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

SQL Server中的GUID

我有一个ASP.NET应用程序,通过C#在代码隐藏中生成GUID.这些GUID通过以下方式生成:

Guid id = Guid.NewGuid();
Run Code Online (Sandbox Code Playgroud)

此GUID稍后存储在SQL Server 2008数据库中.我还有一个存储过程将更新该记录.我想在存储过程中生成一个GUID,其格式与ASP.NET中生成的格式相同.

有人可以告诉我怎么做吗?

谢谢!

c# sql guid

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

获取SQL Server 2005及更高版本的唯一数据库标识符

有没有办法从SQL 2005数据库中获取唯一的数据库标识符(如GUID)?

我发现这篇文章:http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.database.databaseguid%28v=sql.90%29.aspx

但是,我需要能够从T-SQL而不是VB获取DatabaseGuid.

编辑:我试图唯一确定我连接的数据库.通过代码我在SQL Compact和SQL Server之间手动同步记录.现在我的用户处于测试环境中,并且当他们将来指向生产SQL时,我将需要重新同步整个表而不是依赖于rowversion.生产服务器上的rowversions将有所不同,如果我能够检测到数据库GUID更改,我可以重新同步整个表.

提前致谢.

t-sql database sql-server guid

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

mongodb删除失败"无效的对象ID"

我正在尝试使用MongoDB shell删除文档,但由于某种原因,它一直在失败"无效对象id:length"

查询:

db.collections.remove( { _id : ObjectId("FF125DF6-E977-404A-9E8C-600CDAFEFF53" )} );
Run Code Online (Sandbox Code Playgroud)

错误:

周一12月24日3时十一分15秒断言:10448:无效对象ID:长度0x6073f1 0x5d1aa9 0x5ac3f1 0x5b84f4 0x6aa5ac 0x6aaec8 0x69e4e7 0x6aa13f 0x668e46 0x668ec2 0x66a2ce 0x5cbcc4 0x4a44a6 0x4a67e6 0x7f2554e2fcdd 0x49f669蒙戈(_ZN5mongo15printStackTraceERSo + 0×21)[0x6073f1]蒙戈(_ZN5mongo11msgassertedEiPKc + 0x99)[0x5d1aa9 ]蒙戈()[0x5ac3f1]蒙戈(_ZN5mongo21object_id_constructorEP9JSContextP8JSObjectjPlS4_ + 0x2b4)[0x5b84f4]蒙戈(js_Invoke +量0x40C)[0x6aa5ac]蒙戈(js_InvokeConstructor +量0x108)[0x6aaec8]蒙戈(js_Interpret + 0x37c7)[0x69e4e7]蒙戈(js_Execute + 0x36f) 0x6aa13f]蒙戈(JS_EvaluateUCScriptForPrincipals + 0x66)[0x668e46]蒙戈(JS_EvaluateUCScript +为0x22)[0x668ec2]蒙戈(JS_EvaluateScript + 0x6e)[0x66a2ce]蒙戈(_ZN5mongo7SMScope4execERKNS_10StringDataERKSsbbbi +量0x144)[0x5cbcc4]蒙戈(_Z5_mainiPPc + 0x2156)[0x4a44a6]蒙戈(主+ 0x26)[0x4a67e6] /lib64/libc.so.6(__libc_start_main+0xfd)[0x7f2554e2fcdd] mongo(__ gxx_personality_v0 + 0x2a1)[0x49f669] Mon Dec 24 03:11:15错误:无效对象i d:长度(壳):1

我试过跑步

db.repairDatabase();
Run Code Online (Sandbox Code Playgroud)

但没有任何改变.从检查周围我看到它的一个已知问题,有一个解决方法吗?

编辑

这是db中的文档:

{

"_id":"FF125DF6-E977-404A-9E8C-600CDAFEFF53",

"数据":{

   "files": [
   ],

   "categories": [
  ],

   "trash": [
   ]
 } …
Run Code Online (Sandbox Code Playgroud)

shell guid mongodb

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

(WiX) - 使用预构建事件自动生成GUID(heat.exe)

我为我的directorys /文件做了一个预构建活动.现在它创建source.wxs很好,但只有'GUID ="*"',所以现在我得到编译器错误,因为它没有映射到ProgrammFilesFolder,但每个组件都需要一个唯一的GUID:

Path" %SystemDrive%\st /MIR
"%WIX%\bin\heat.exe" dir %SystemDrive%\st -dr INSTALLDIRECTORYFOLDER -cg    SourceComponentGroup -var var.SourcePath -ag -out "$(SolutionDir).\Setup\source.wxs"
Run Code Online (Sandbox Code Playgroud)

结果:

<Component Id="cmp97CD2699CFD0E466AE00E9EE0BC75B3D" Directory="dirE9158D60656EC6CD461378A2C8EDC064" Guid="*">
     <File Id="filD6533D5A559BC86E4704F435FEEE2A5A" KeyPath="yes" Source="$(var.SourcePath)\test1.txt" />
</Component>
Run Code Online (Sandbox Code Playgroud)

是否有任何参数我可以改变以获得所需的效果?我找不到有关参数的任何文档.

xml guid wix wix3 wix3.5

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

在C#中使用ComImport,如何在shell32.dll中找到像IFileDialog这样的类的GUID?

我一直在尝试使用ComImport为我正在编写的C#应用​​程序设置一些与各种dll中的win32类的互操作.我不明白你是如何找到班级的GUID的?我找到了一些有效的导入示例,但我不确定作者是如何找到类的GUID的.下面列出了导入IFileDialog及其方法之一的示例.

[ComImport(), Guid("42F85136-DB7E-439C-85F1-E4075D135FC8"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
internal interface IFileDialog {
    [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
    [PreserveSig()]
    uint Show([In, Optional] IntPtr hwndOwner); //IModalWindow
Run Code Online (Sandbox Code Playgroud)

我正在使用Visual Studio 2012,我可以看到如何在COM选项卡上的Microsoft Shell控件和自动化中添加对shell32.dll的引用,但这似乎对我没有任何作用.我在这里错过了什么?你在哪里找到GUID?有没有办法让Visual Studio生成上面列出的代码,或者我是否需要找到每个类的GUID,然后编写上面列出的方法导入?

.net c# com guid

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

生成的顺序GUID有时不是顺序的

我有一个C#应用程序,它为我插入表中的每一行生成一个顺序GUID.我希望插入的GUID是顺序的,但有时它们会破坏序列(以块为单位).

例:

按顺序打破

这些GUID按插入顺序显示.

为什么这些"顺序"GUID是在如此大的序列中断的情况下创建的?


用于生成顺序GUID的代码:

class NativeMethods
{
    [DllImport("rpcrt4.dll", SetLastError = true)]
    public static extern int UuidCreateSequential(out Guid guid);
}

public static Guid CreateSequentialGuid()
    {
        const int RPC_S_OK = 0;

        Guid guid;
        int result = NativeMethods.UuidCreateSequential(out guid);
        if (result == RPC_S_OK)
            return guid;
        else
            return Guid.NewGuid(); //<--In debugging, this statement never runs.
    }
Run Code Online (Sandbox Code Playgroud)

循环中使用的代码,用于将新GUID和信息插入表中:

Guid mySequentialGUID = CreateSequentialGuid();
string[] row = { item1,
                 item2,
                 item3,  
                 sourceText,
                 encoding.ToString(),
                 mySequentialGUID.ToString()
             };
var listViewItem = new ListViewItem(row);
myListView.Items.Add(listViewItem);
Run Code Online (Sandbox Code Playgroud)

编辑:请参阅此问题以了解顺序GUID:

c# guid newsequentialid sequential

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

Guid.Tostring()在我的数据库中提供了与UUID_TO_CHAR不同的表示

我正在使用带有UUID的Firebird数据库作为主键但我遇到了以下问题:

我的C#应用​​程序中相同Guid的文本表示与数据库的不同.我正在使用UUID_TO_CHAR函数和我的C#应用​​程序中的数据库中获取文本表示Guid.ToString().

区别在于Firebird数据库解释UUID与.net框架的方式,我相信他们用不同的字节顺序读取它们

例如,数据库中的guid如下所示:

FADE3E40-6227-5B40-BBB9-8492859EBA66
Run Code Online (Sandbox Code Playgroud)

我的C#应用​​程序中的相同guid看起来像这样:

403edefa-2762-405b-bbb9-8492859eba66
Run Code Online (Sandbox Code Playgroud)

有没有办法在我的数据库中显示它们与在C#中显示的方式相同.或相反亦然?

有没有办法在从数据库中获取它们并将它们放入数据库时​​进行转换,因此我不必在任何地方使用格式?

c# firebird uuid guid firebird2.5

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