SQL Server 2022 图 - 针对 T-SQL 的实体开发人员

问题描述 投票:0回答:1

我使用 T-SQL 从头开始创建一个数据库(此代码有效)。

我们可以看到,该图在 T-SQL 中使用 $node_id ,它看起来像是全名 $NodeIdE051E8F24C3E4C19A168DDEF0BAA40A7 的别名。 每次创建数据库时,这个唯一 ID 都会发生变化。 T-SQL 脚本始终有效。

CREATE DATABASE TestGraph

ALTER DATABASE TestGraph MODIFY FILE
( NAME = N'TestGraph', SIZE = 32MB, MAXSIZE = UNLIMITED, FILEGROWTH = 5MB )
GO

ALTER DATABASE TestGraph MODIFY FILE
( NAME = N'TestGraph_log', SIZE = 32MB, MAXSIZE = UNLIMITED, FILEGROWTH = 10% )
GO

use "TestGraph"
go

exec sp_configure 'contained database authentication', 1
go
reconfigure
go

alter database "TestGraph"
set containment = partial
go

CREATE USER testuser WITH PASSWORD = '$Password1234'
EXEC sp_addrolemember 'db_datareader', 'testuser';
EXEC sp_addrolemember 'db_datawriter', 'testuser';
go

CREATE TABLE Species 
(
    [Id] int IDENTITY(1,1) NOT NULL,
    [TranslatedNameId] int NULL,
    [ImageIndex] int NULL,
    [Name] nvarchar(64),
    [Description] nvarchar(max) NULL,
    PRIMARY KEY (Id)
) AS NODE;

CREATE TABLE ChildSpeciesLink AS EDGE;
CREATE TABLE AncestorSpeciesLink AS EDGE;

Insert Species (Name, Description) VALUES 
(N'Racine', N'Racine de l''arbre.'),
(N'Chat', N'Chat'),
(N'Chien', N'Chien'),
(N'Furet', N'Furet'),
(N'Rat', N'Rat');

Insert into ChildSpeciesLink ($to_id,$from_id) values

-- Race Chat:
(
    (select $node_id from dbo.Species where Id=1),
    (select $node_id from dbo.Species where Id=2)
),
-- Race Chien:
(
    (select $node_id from dbo.Species where Id=1),
    (select $node_id from dbo.Species where Id=3)
);

Insert into AncestorSpeciesLink ($to_id,$from_id) values
-- Race Chat:
(
    (select $node_id from dbo.Species where Id=2),
    (select $node_id from dbo.Species where Id=1)
),
-- Race Chien:
(
    (select $node_id from dbo.Species where Id=3),
    (select $node_id from dbo.Species where Id=1)
);

但是问题出在实体开发者之后。生成的类使用全名,因此我必须在数据库上重新同步 C# 代码并重建项目。有没有办法避免这种情况?

这是生成的代码:

public partial class Species 
{
        public Species()
        {
            OnCreated();
        }

        public string NodeIdE051E8F24C3E4C19A168DDEF0BAA40A7 { get; set; }

        /// <summary>
        /// Clé primaire.
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// Numéro de ressource externe pour la localisation.
        /// </summary>
        public int? TranslatedNameId { get; set; }

        /// <summary>
        /// Numéro d&apos;image pour un rendu plus visuel de la donnée.
        /// </summary>
        public int? ImageIndex { get; set; }

        /// <summary>
        /// Nom de l&apos;espèce concernée.
        /// </summary>
        public string Name { get; set; }

        public string Description { get; set; }

        #region Extensibility Method Definitions

        partial void OnCreated();

        #endregion
}

感谢您的帮助。 文森特

c# entity-framework-core .net-6.0 devart sql-graph
1个回答
0
投票

我们将在将图表导入 Devart EF Core Model 时添加检测和截断列名称中的 GUID 后缀的功能并通知您。

© www.soinside.com 2019 - 2024. All rights reserved.