2012-01-29 60 views
2

我使用SQL Server 2008和Entity Framework 4.1数据库第一种方法。如何在SQL Server中使计算列可以为空

有没有什么办法可以创建无效的计算列?

我不能创造这样的:

Alter Table Employee Add FullName nullable as LastName + ' ' +FirstName 

如果答案是否定的,那么有没有什么办法可以使EF的适当的标量属性Nullable在EDMX文件,该文件映射到计算列?

回答

2

计算列的默认空值是表达式涉及任何其他可为空的列,表达式或任何函数。如果您想要NON-NULL计算列,则应该使用ISNULL函数来包装列的表达式。

Alter Table Employee Add FullName as LastName + ' ' +FirstName 

在这种情况下全名会为空的只有一列(名字,姓氏)将可为空太

如果你想为空的计算列由WITN非空的表达式列,然后使用用户定义函数为表达式:

CREATE FUNCTION dbo.FullName(@LastName nvarchar(100), @FirstName nvarchar(100)) 
RETURNS nvarchar(201) 
AS 
BEGIN 
    RETURN @LastName + N' ' [email protected] 
END 
GO 

Alter Table Employee Add FullName as dbo.FullName(LastName, FirstName) 
+0

干得好!这帮助了我...... :) – 2012-10-01 17:23:03