Generic entities

Any entity can be queried via the GenericEntity class without having to define a strongly-typed schema.

Create a new lead

var session = serviceFactory.GetSessionFromConnectionString("MyDynamicsInstance"); // Field values are set with Dictionary<string, object>. var fieldValues = new Dictionary<string, object>() { { "firstname", "John" }, { "lastname", "Smith" }, { "emailaddress1", "example@example.com" } }; var lead = await GenericEntity.InsertAsync(session, "lead", fieldValues);

Load an existing lead

var session = serviceFactory.GetSessionFromConnectionString("MyDynamicsInstance"); // Find a lead by email address. var lead = await GenericEntity.LoadSingleAsync(session, "lead", (query, exp) => { query.Filter("emailaddress1 eq 'example@example.com'").Select("firstname, lastname"); } ); // Returned objects support Dictionary syntax to access fields. Console.WriteLine($"First name: {lead["firstname"]}, Last name: {lead["lastname"]}");

Update an existing lead

// Change a field value on a previously loaded lead. lead["lastname"] = "Jones"; await lead.UpdateAsync(session);