Код сначала не имеет модели сущностей.

ользую Entity Framework 4 Code First CTP5 и ASP.NET MVC 3. Я хотел бы знать, как использовать хранимые процедуры?

У меня есть следующий код в моем классе репозитория:

MyDatabaseContext db = new MyDatabaseContext();

public void Insert(News news)
{
   db.Newses.Add(news);
   db.SaveChanges();
}

И тогда моя процедура хранения вставки будет выглядеть так:

ALTER PROCEDURE [dbo].[News_Insert]
(
   @Title VARCHAR(100),
   @Body VARCHAR(MAX),
   @NewsStatusId INT
)

AS

BEGIN

   INSERT INTO
      News
      (
         Title,
         Body,
         NewsStatusId
      )
      VALUES
      (
         @Title,
         @Body,
         @NewsStatusId
      );

  SELECT SCOPE_IDENTITY();

END

Любые статьи / советы будут оценены.

ОБНОВЛЕНИЕ 1:

С дизайнером я мог бы вернуть новый объект или идентификатор новости, как бы я сделал это здесь?

ОБНОВЛЕНИЕ 2

Вот что я сделал:

public void Insert(News news)
{
   int newsId = context.Database.SqlQuery<int>("News_Insert @Title, @Body, @Active",
      new SqlParameter("Title", news.Title),
      new SqlParameter("Body", news.Body),
      new SqlParameter("Active", news.Active)
   ).FirstOrDefault();

   context.SaveChanges();
}

Я получаю ошибку здесь, говоря:

Указанное приведение из материализованного типа System.Decimal к типу System.Int32 недопустимо.

Мой класс новостей:

public class News
{
   public int NewsId { get; set; }
   public string Title { get; set; }
   public string Body { get; set; }
   public bool Active { get; set; }
}

Я использую существующую базу данных, и моя строка подключения выглядит следующим образом:

<connectionStrings>
   <add
      name="MyDatabaseContext"
      connectionString="Data Source=MyServer;Initial Catalog=MyDatabase;Integrated Security=True;"
      providerName="System.Data.SqlClient" />
</connectionStrings>

Вот мой контекстный класс:

public class MyDatabaseContext : DbContext
{
   public DbSet<News> Newses { get; set; }
}

Я не уверен, что я делаю не так здесь? Может быть, моя хранимая процедура неверна? В идеале я хотел бы вернуть новый обновленный объект. Может кто-нибудь, пожалуйста, посоветуйте?

Ответы на вопрос(2)

Ваш ответ на вопрос