c# - 你能在一条语句中实例化和初始化一个 SqlDataRecord 吗?

标签 c#

在 C# 中,有没有一种方法可以在一条语句中实例化和初始化 SqlDataRecord?

而不是在两个语句中这样做:

var record = new SqlDataRecord(new SqlMetaData("n", SqlDbType.BigInt));
record.SetInt64(0, someLongVal);

我想用一条语句而不是两条语句来完成。这可能吗?

编辑:我现在想要一种简化的 b/c 方式,这段代码在一个循环中,我想将其放入 Linq 语句中。但是当我将它转换为 Linq 时,我不喜欢三行 lambda 的外观来实例化、设置值和返回。所以我正在寻找替代方案。纯粹的美学。

最佳答案

您可以使用带有扩展的方法链!?

public static class DataRecordExtension
{
    public static SqlDataRecord WithInt64(this SqlDataRecord record, int ordinal, long value)
    {
        record.SetInt64(ordinal, value);
        return record;
    }
}

...然后像这样使用它:

var record = new SqlDataRecord(new SqlMetaData("n", SqlDbType.BigInt)).WithInt64(0, someValue);

或者根据您的需要构建一个助手....

public class DataRecordHelper
{
    public static SqlDataRecord CreateDataRecordInt64(int ordinal, long value, params SqlMetaData[] metaData)
    {
        var record = new SqlDataRecord(metaData);
        record.SetInt64(ordinal, value);
        return record;
    }
}

关于c# - 你能在一条语句中实例化和初始化一个 SqlDataRecord 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41473161/

相关文章:

c# - 完成无尽任务的最佳方法

c# - 在 MVVM 之后创建 WPF View 时将数据传递给 ViewModel

javascript - 如何将 session 值从 aspx(使用 javascript 存储)传递到 cs

c# - 使用 C# 将 SSL 证书自动安装到 IIS 6 站点

c# - 如何让 FxCop 与 Sonar 一起使用 C# 解决方案?

c# - 在 C# 中格式化字符串

c# - 如何从编辑器分类器项目 (c#) 获取当前解决方案目录?

c# - 如何在 C# 中以编程方式填写另一个程序的弹出字段?

c# - Winforms ToolTip 获取和更改所有分配的工具提示

c# - 限制winforms中复选框控件的可点击区域