Asp.net Mvc - Saving A Nested Collection With MVC 3, EF 4.1, DbContext, And AutoMapper
Apr 29, 2011
I am having difficulty getting a nested collection (Tags in my case) to commit back to the database after being passed into my controller. I am using EF 4.1 with the DbContext API, MVC 3, and Automapper.
My Models:
Partial Public Class Proposal
Public Property Id As Integer
Public Property Memo As String
I have two classes, one nested in the other. [code]Neither "Name" or "ID" are unique between operations and records.I wish to construct a dictionary using LINQ = Dictionary(Of String, Of List(Of Integer), whereby the keys are uniqe examples of Names in my collection and the values are the collective set of distinct IDs that are associated with those names.
Using automapper i am mapping my ViewModel to my business object, however i want to map to an existing object instance and only map the properties on my view model. e.g.
ProductModel has id,name,code ProductBusiness has id,name,code,dateadded Function Add(ByVal model As ProducModel) As ActionResult
[code]....
i want to somehow pass in the existing business object instance and only map the 3 properties that are on both objects, dateadded should stay the same as it was in the database.
I would like to be able to save to a db and send task to email or as text msg for instance nevermind that.. I have two variables of type ArrayList they are "_mList1" , "_mList2" and "_mList3"
_mList1 stores the list of Telephonenumbers , _mList2 stores the list of StaffIDs and _mList3 Some concatenated string.
theses variable lists will hold some data in runtime as explained and i would like to use them to populate a DB table again mentioned
I have in my database a table (AccessControl) that describes a sort of users "access control list" for the informations contained in the table Customers and other tables.Example: the entity CUSTOMER is marked by the EntityId #1. If a user belongs to the department #6, he can access the records of customer #16 and #31, but he can't for #14, that can viewed by user in department #3:
[code]...
How can I describe this relationship into the DbContext definition using a fluent Code First approach?
code For Each item As Reflection.FieldInfo In GetType(NameSpace.ClassWithNestedClasses).GetFields rtfAppend(item.Name & ":" & Tab & item.GetValue(Me)) Next For Each item As Reflection.PropertyInfo In GetType(NameSpace.ClassWithNestedClasses).GetProperties()
[code]...
which gets me the simple string vars and properties of my top class, but how can i apply this to loop through all sub classes and get there vars and props?
i am trying to copy data from a standard Dataset to a Type Dataset (XSD) of same table structure. i want to use Automapper to do that one. So how can i do that using automapper?
Is it good practice to store sub-collections of item X inside a parent collection of item X for caching 'filter-queries' which are performed on the parent collection? (They won't be used together (as in color AND type).) Or is it also ok to just Loop over the collection and return the correct entities in a temporary collection?
I have been researching for a couple of days now and to no avail. Does Anyone know how to make a custom collection that take advantage of the collection editor? I would like to be able to have 3 Color Values, 1 Boolean and 1 String.
I'm trying to support Basic.NET on my framework so I'm trying to convert C# 4 code to Basic.NET 10. Microsoft is committed to "co-evolve" these two but I'm having a problem with collection initialization... I found that I can initialize a collection much like in C#:
I've got the following ADO.NET Entity Framework Entity Data Model:I want to find all the Policyholders with both a Service of a given Id and also a Keyword of a given Status.
This LINQ Does Not Work:
Dim ServicesId As Integer = ... Dim KeywordStatus As Integer = ... Dim FoundPolicyholders = From p As Policyholder In db.PolicyholderSet.Include("Keywords").Include("Services") _ Where p.Services.Id = ServicesId _ And p.Keywords.Status = KeywordStatus _ Select p
The Where clause cannot search the p.Services and p.Keywords EntityCollections in that way.
currently in my application I have a Global Collection that is a Collection of Collections.Currently I am trying to add items/ elements to one of the child collections of the Global Collection but I am unable to use the collections methods of the child.When I assign a variable to the child collection and return the collection it is just an object with the collection inside.
Ex: Dim GlobalCollection as New Collection Dim ChildCollection1 as New Collection Dim tempCurrentCollection[code]......
I've been working with a CMS called InsiteCreations 2008. I'm running into an error I just can't wrap my head around. I would even be willing to compensate anyone a small amount over paypal, for a solution. The error is rare in occurance, and appears when clicking about 3-4% of links to other pages within our CMS.The full code page is quite large, but there seems to be only one function associated with the error. The error also only appears when not logged into the CMS. If logged into the CMS, clicking the link simply displays the page as normal. I have already checked permissions on the page from the CMS admin console, and it is public.
The error message is as follows:
Server Error in '/' Application.Collection index must be in the range 1 to the size of the collection. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
I have a BLL class which contains properties for the fields in a Country table (CountryCode, CountryName, etc). It also has a property ioDAL, which is a reference to a DAL class (created with SubSonic 2.2), which has same named fields.
I have a LoadRecord() method which calls the DAL's FetchById() method that populates the DAL properties by calling the database (SQL Server 2005 FWIW).What I then want to do, rather than writing code to populate each BLL property from its DAL equivalent, is to use AutoMapper (from CodePlex). I think the line should be something like
Mapper.CreateMap(ioDAL, Me)()but this gives errors "Value of type (DAL class / namespace naming) cannot be converted to 'System.Type'" and "Value of type (BLL class / namespace naming) cannot be converted to 'System.Type'".
Public Class Store Public Overridable Property Areas As List(Of Area) End Class Public Class Area
[code]....
What's the quickest way to get a total count of shelves for a store? I.e. for a store I get the total count of areas by using Areas.Count Or will I need to loop through each area and tally the count of shelves?
I have an ASP.NET app with lots of textboxes all over the page that need updating at various points through program execution. These textboxes actually belong to a certain class, so for easy updating I thought I could create a Dictionary(Of string, object) and add the control.ID and the control to it and then for updating do something like this:
I need to convert a VB Collection to a modern one, like Dictionary or Hashtable. For my approach, I need the Collection's KEYS. Googling tells me that it's impossible. Re-writing the entire application using new collections is not an option as the application is really old and large (converted from VB6 to VB.Net).Using the old Collection also is not good - as there are new components in development.Converting a - for example - Hashtable to Collection works:
using VBCollection = Microsoft.VisualBasic.Collection; public static VBCollection ToVBCollection(this Hashtable table) {
Currently I am saving data from my applications by saving a text file via a stream reader as a string. I have come to a problem. In my current application, I have an array of the following structure:
I have a problem. I'm working on this advanced web browser with my friend, and we made a favorites feature. So, it works and all that, but, after I close the executable file, it doesn't save anything!
Ex:Starting Up, adding Google as new favorites, then closing the browser. Starting up again, 1 hour later, but there's no Google Here's what I put for saving the favorites (please do not steal the code Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
I have a collection of lines and as i loop through through the collection, i need to see if it aleady contains a certain line; however, the contains method wants a string and i have stored lines, so how can i use this method to see if my line is already in the collection so i don't place it in there twice?
I have an outer listview and inside its itemtemplate an inner listview. Each has its own SQLDataSource. A Id field from the outerlistview works as a select parameter for the second listview.
When stepping through with the debugger it works perfectly, unfortunately the rendered page only contains data from the outer listview. It appears the databinding of the outer listview fires and renders the page (including the inner listview) before the codebehind can provide a where parameter to the second listview. The aspx page is below.
I am using nested datalists to display hierarchical data. In the nested datalist i want to be able to bind to a property that belongs to the object that the parent datalist is bound to.
I have an XML file which is a multitable nested xml file (.Tables.Count returned 12 tables). I would like to have all of the xml contents in one table or, if not, select different columns from these different tables (that are stored in XML) and put them in one table. As I understood Datagridview only allows only one table at a time. Is there any way to create a new datatable by joining exsting tables from XML?
I have been trying to read the cd toc in one go from the API, I can read it OK with a single byte array, but I can't find a way to fill the formatted arrays
I've a large table of Items and I need to organize them by Category, then by Year and then by Month.Item has CategoryID and Dated properties.I got this far:
Dim Items = From Item In DB.Items _ Group By CategoryID = Item.CategoryID _ Into Categories = Group _ Order By CategoryID
But where I put the:
Group By Year = Year(Item.Dated)
and the
Group By Month = Month(Item.Dated)
The final result should be something like this:
For Each Category in Categories For Each Year in Category.Years