Я не могу понять, какую ссылку сборки я пропустил? Чтобы избежать этой ошибки для моей логики вставки в платформе сущностей?Может быть, старый вопрос, но не может найти решение для моего проекта.
- Следую Кодовому подходу в EF6.2.0
Пожалуйста, обратитесь к фотографии, которую я приложил для справки.
/ * Код Прилагается также для справки * /
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Net;
using System.Net.Http;
using System.Configuration;
using System.Threading.Tasks;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
namespace ServerlessCoding
{
public static class EF6AddModifyLogic
{
[FunctionName("EF6AddModifyLogic")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Admin, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
// Get request body
dynamic data = await req.Content.ReadAsAsync<object>();
string name = data?.name;
var connectionString = ConfigurationManager.AppSettings["SqlConnection"];
// var connectionString = ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString; // Azure Serverless Code
using (var context = new PersonDbContext(connectionString))
{
// If you can't decide existance of the object by its Id you must exectue lookup query:
var person = new Person { Id = 1, Name = "Foo", Age = 32 };
var idVar = person.Id;
if (await context.Persons.AnyAsync(e => e.Id == idVar))
{
context.Persons.Attach(person); // you can now attach your person object to this context
context.ObjectStateManager.ChangeObjectState(person, System.Data.EntityState.Modified);
}
else
{
context.Persons.Add(person);
}
context.SaveChanges();
}
return name == null
? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
: req.CreateResponse(HttpStatusCode.OK, "Hello " + name);
}
// POCO Class - This should match the SQL table definition.
public class Person
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
// Context Class for creating the tables.
public partial class PersonDbContext : DbContext
{
public PersonDbContext(string cs) : base(cs) { }
public DbSet<Person> Persons { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
}
}