sách gpt4 ăn đã đi

c# - 向 EF 4 添加新的标量类型

In lại Tác giả: Walker 123 更新时间:2023-11-30 12:17:47 24 4
mua khóa gpt4 giày nike

Entity Framework 将 DB 类型映射到 .NET 类型,例如 SQL Server 的 BigInt 映射到 .NET 的 dài

是否可以创建一个新类型并将存储类型(例如 BigInt hoặc VarChar)映射到它?如果是,怎么做?

仅供引用,我的目标是改变 .NET 标量将其值写入查询的方式,特别是其默认值的写入方式(我正在尝试使用 SQL Server 的 default 关键字解决诸如 cái này 之类的问题)。

谢谢,
阿萨夫

gia hạn
找到一个post for EF 1 saying it can't be done .我不确定它在当时是否正确,我更不确定它是否与 EF 4 相关。

câu trả lời hay nhất

我几乎可以肯定,即使在 EF4.0 中也无法创建新的标量类型。

您实际上可以做的是创建一个包装底层标量类型的复杂类型。 VS2010 中的设计器支持复杂类型。




提供您想要的任何默认值和几个隐式转换运算符。

public class DateTimeWrapper
{
private DateTime _value = DateTime.Now;

public DateTime Value
{
get { return _value; }
set { _value = value; }
}

public static implicit operator DateTime(DateTimeWrapper wrapper)
{
if (wrapper == null) return DateTime.Now;
return wrapper.Value;
}

public static implicit operator DateTimeWrapper(DateTime date)
{
return new DateTimeWrapper { Value = date };
}
}

因此,每个具有 DateTimeWrapper 类型复杂属性的实体都将被正确初始化。您可以使用如下语法:MyEntity.MyDateTimeWrapperProp = DateTime.UtcNow 在创建和修改实体时。

但在查询中,您必须编写 MyEntities.Where(ent => ent.MyDateTimeWrapperProp.Value == ...)

关于c# - 向 EF 4 添加新的标量类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3139661/

24 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress