SQL内部我有主键为二进制(8)的表。当我使用Update Model from Database
该表添加到我的模型,我可以看到,这列了type = Binary
EntityFramework数据库优先 - 类型映射 - 将二进制(8)从SQL映射到C#中的int
,并在C#中,我得到的是列byte[]
。
我可以将该列映射到int吗?
我知道我可以在SQL创建一个视图与CAST
:
SELECT
Client_Id,
CAST(Client_Id AS INT) AS NewClient_Id,
* /*other columns*/
FROM
dbo.Clients
,但这不是解决办法,因为我必须能写,不只是从该表中读取。我知道我可以为插入创建存储过程,但我想避免这种情况。
我是usinf EntityFramewor 6.1.3。
你是否也会尝试将一夸脱放入一个品脱罐中? 'binary(8)'包含8个字节。 C#中的“int”包含4个字节。你在这里看到问题吗? –
@Damien_The_Unbeliever对不起,如果我写了不正确的东西,但我试图让它工作。我认为,如果我可以在SQL中执行CAST,那么EF可能会为我执行该操作。我可以通过代码将'byte []'转换为int,但我认为EF具有这种内置,我只是不知道如何打开或配置它。 – Misiu
你可以写信给一个视图。但是,您需要为视图提供触发器,以便将值转换回来。也是二进制8是一个长期的IIRC – Mark