我创建了一个内联表 UDF,其中包含一些不同类型的列。
ALTER FUNCTION [dbo].[fnTest]()
RETURNS TABLE
AS
RETURN
(
SELECT
[t0].[type],
[t0].[status],
[t0].[createdDate], -- datetime not null
[t1].[ACLID] -- bigint not null
FROM
[dbo].[ProcessInstanceWorkitem] AS [t0]
INNER JOIN [dbo].[Object] AS [t1] ON [t0].[objectID] = [t1].[objectID]
)
但是,尽管某些列设置为非空,但 sqlmetal.exe 将它们创建为可空类型:
public partial class FnTestResult
{
private string _Type;
private string _Status;
private System.Nullable<System.DateTime> _CreatedDate;
private System.Nullable<long> _ACLID;
...
为什么它没有得到正确的不可为空的类型?
我将 sqlmetal (Microsoft (R) Database Mapping Generator 2008) 版本 4.0.30319.1 用于 .NET Framework 版本 4。