提问人:Nolmë Informatique 提问时间:11/16/2023 最后编辑:marc_sNolmë Informatique 更新时间:11/17/2023 访问量:22
SQL Server 2022 图形 - 针对 T-SQL 的实体开发人员
SQL Server 2022 Graph - Entity developer against T-SQL
问:
我使用 T-SQL 从头开始创建一个数据库(此代码有效)。
正如我们所看到的,该图在 T-SQL 中使用了 $node_id,它看起来像全名 $NodeIdE 051E8F24C3E4C19A168DDEF0BAA40A7 的别名。 每次创建数据库时,此唯一 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'image pour un rendu plus visuel de la donnée.
/// </summary>
public int? ImageIndex { get; set; }
/// <summary>
/// Nom de l'espèce concernée.
/// </summary>
public string Name { get; set; }
public string Description { get; set; }
#region Extensibility Method Definitions
partial void OnCreated();
#endregion
}
谢谢你的帮助。 文森特
答:
1赞
Devart
11/24/2023
#1
我们将添加在将图形表导入 Devart EF Core 模型时检测和截断列名称中的 GUID 后缀的功能,并通知你。
评论