LINQ to SQL сопоставляет уникальный идентификатор SQL Server с GuidC#

Место общения программистов C#
Ответить
Anonymous
 LINQ to SQL сопоставляет уникальный идентификатор SQL Server с Guid

Сообщение Anonymous »

Я пытаюсь получить доступ к уникальному идентификатору SQL Server с помощью сопоставления Linq-SQL:
Таблица –

Код: Выделить всё

CREATE TABLE [dbo].[Members](

[guid] [uniqueidentifier] NOT NULL

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [dbo].[Members] ADD  CONSTRAINT [DF__Members__Guid__398D8EEE]  DEFAULT (newid()) FOR [guid]
GO
Класс C# –

Код: Выделить всё

using System.Data.Linq.Mapping;

[Table(Name = "Members")]
public class MembersClass
{
[column]
public Guid guid { get; set; }
}
Этому коду не удалось выполнить приведение:

System.InvalidCastException: указанное приведение недопустимо

Вариация темы (другая итерация кода, показанного ниже, включая приведение возврата SQL в виде CHAR или VARCHAR)
Модификация строки C#
/>

Код: Выделить всё

  [Column(Name = "guid", DbType ="uniqueidentifier", IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]

public Guid? guid { get { return guid; } set { guid = Guid.TryParse(value.ToString(), out Guid g)?(Guid)g :(Guid?) null;  } }
Можно ли преобразовать Guid?
Следующий шаг — создать искусственный Guid в varchar в базе данных

Подробнее здесь: https://stackoverflow.com/questions/798 ... -to-a-guid
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»