ObjectResult的 C# 扩展方法?

发布于 2024-09-28 10:45:17 字数 238 浏览 3 评论 0原文

我在实体框架中使用存储过程。假设我有这个过程:

    public static int DoSth(decimal id)
    {
        return (int)Adapter.my_proc(id).First();
    }

因为我不想获取 First() 元素,然后每次我想要一个扩展方法来为我执行此操作(获取 First 元素和然后将其转换为 T)。它会是什么样子?

I use stored procedures in Entity Framework. Let's say that I have that procedure:

    public static int DoSth(decimal id)
    {
        return (int)Adapter.my_proc(id).First();
    }

as I don't want to get the First() element and then cast it as (int) everytime I'd like to have an extension method which do that for me (gets the First element and then cast it as a T). How will it looks like ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

指尖凝香 2024-10-05 10:45:17

我不确定我明白你的问题是什么。以下是简单扩展方法的代码,该方法采用 ObjectResult,获取集合的第一个元素并将其转换为 T(将该方法放在单独的静态类中)。

public static T Fetch<T>(this ObjectResult<T> result)
{
    return (T)result.First();
}

然后你可以这样称呼它:

public static int DoSth(decimal id)
{
    return Adapter.my_proc(id).Fetch<int>();
}

这是你的想法吗?

I'm not sure I understand what is your problem. Here is the code for simple extension method that takes ObjectResult<T>, gets first element of collections and cast it to T (put the method in separate static class).

public static T Fetch<T>(this ObjectResult<T> result)
{
    return (T)result.First();
}

And then you can call it like:

public static int DoSth(decimal id)
{
    return Adapter.my_proc(id).Fetch<int>();
}

Is that what you're thinking of?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文