无法在实体框架中获取存储过程以返回值

时间:2015-01-07 00:29:30

标签: entity-framework stored-procedures ef-code-first entity-framework-6

我尝试在我的数据库中创建存储过程,并在Sql Server Management Studio中测试它(工作正常),但是当我使用实体框架从我的MVC应用程序调用它时,结果说 - “无法评估子项”我扩展了结果视图。

这是我到目前为止所尝试过的。

public void ExecuteStoredProcedure()
    {
        //var gift = context.Gifts.SqlQuery("dbo.GetGiftsFromId @p0", 1);

        var result = context.Database.SqlQuery<Gift>("dbo.GetGiftsFromId @p0", 1);

    }

在我的存储过程中,我有一行要执行。

SELECT * from dbo.Gifts where GiftId = @gift_id

有没有人知道为什么电话没有返回任何东西?我在其他帖子中看到有些人在他们的代码中使用了modelbinder.Entity等等。我需要这样做吗?

我首先使用代码,这是我的礼物

public class Gift
{
    // for a one-to-one relationship
    // great tutorial on code-first
    //http://www.entityframeworktutorial.net/code-first/configure-one-to-one-relationship-in-code-first.aspx

    public Gift()
    {
        Images = new List<GiftImage>();
    }

    public int GiftId { get; set; }

    public DateTime DateCreated { get; set; } 

    [Required]
    public string Name { get; set; }

    public virtual ICollection<GiftCategory> Categories { get; set; }

    public int Rating { get; set; }

    public GiftStatus Status { get; set; }

    [Required]
    public int OwnerId { get; set; }

    [Required]
    public virtual GiftAddress GiftAddress { get; set; }

    public GiftAvailability Availability { get; set; }

    [Required]
    public virtual GiftDescription Description { get; set; }

    public byte[] Thumbnail { get; set; }

    [Required]
    public virtual ICollection<GiftImage> Images { get; set; }

    public ICollection<GiftReview> Reviews { get; set; }
}

1 个答案:

答案 0 :(得分:0)

我必须使用。

results.ToList()

获得结果。

或取得结果并用它做某事的东西。