C# - Get A Custom Sorted EntityCollection By Default In EntityFramework ?
Jan 15, 2010
I would like to call a method in the ObjectContext which returns EntityCollection and have it sorted the way I want by default. For example, Imagine I have the following Category table/class:
CategoryID (PK)
Name
ParentID (FK_Category) foreign key
pointing to CategoryID itself.
(This table is the base for a tree structure of Categories and SubCategories)
Now, in my data model, the public partial class Category : EntityObject has a property which returns all Categories that have ParentID==CategoryID, in other words, EntityCollection<Category> SubCategories.
Alright, now i want to show in my page all the Categories and SubCategories by using Repeater:
<asp:Repeater ID="rptSubCategories" runat="server">
<ItemTemplate>
<%# Eval("CategoryID") %> - <%# Eval("Name") %>
<asp:Repeater ID="rptSubCategoryCategories" runat="server" DataSource='<%#Eval("SubCategories")) %>'>
<ItemTemplate>
<%# Eval("CategoryID") %> - <%# Eval("Name") %>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
Then in code behind, I set the DataSource:
IList<Category> categoryList = new CategoryProvider().GetAll();
rptSubCategories.DataSource = categoryList;
rptSubCategories.DataBind();
Simply and everything works! Except that, rptSubCategoryCategories doesn't gives sorted Categories by Name. The only way I found to do it, is to change its DataSource from:
DataSource='<%# Eval("SubCategories")) %>'
to:
DataSource='<%# ((EntityCollection<Category>)Eval("SubCategories")).OrderBy(p => p.Name) %>'
but I wish I could do something else to have a default sorting so i don't need to call the OrderBy. Something like Attributes like we do in DynamicData, following the tutorial at [URL] Setting the default sort column of an Entity with DisplayColumnAttribute. Unless somebody tells me it's impossible what I want to do.
Using .NET 4.0 BETA 2
View 1 Replies
Similar Messages:
Jun 7, 2010
I have created a custom control and I intended to assign some attributes which is not necessary to implament.
I also assign default value for them but I am getting System.NullReferenceException error.
Here is my CC's attibute code;
public class ApplicationModule2010 : CompositeControl
{
[DefaultValue(true)]
public bool AppFormOnLine { get { return (bool)ViewState["AppFormOnLine"]; } set { ViewState["AppFormOnLine"] = value; } }
...
also ı have written the below code for another attribute but its default value doesn't work as well;
[DefaultValue("Application is Offline ! Define an offline Text insted of this text !<br/><br/>TugberkUgurlu.Com")]
public string OfflineText { get { return (string)ViewState["OfflineText"]; } set { ViewState["OfflineText"] = value; } }
What am I missing here ?
View 1 Replies
Mar 13, 2010
I have Entity Framework entities Events which have an EntityCollection of RSVP. I want to convert the EntityCollection of RSVP to a generic List<> of a POCO class RSVP.
So I want EntityCollection -> List. What would be the best way to go about achieving this?
So far I have this (it's missing the RSVP part)
var events = from e in _entities.Event.Include("RSVP")
select new BizObjects.Event
{
EventId = e.EventId,
Name = e.Name,
Location = e.Location,
Organizer = e.Organizer,
[Code]....
View 3 Replies
Feb 28, 2011
I'm trying to have a View where the user can add items in a collection without having to go to a new View (the scenario is a sort of CV site where the user adds info about work experience, skills, etc, and it would seem absurd to go to a new View to add each little thing).
So I have an edit View that shows a number of text boxes for the already added items, and there's an ajax call to go to a method to fetch the collection fresh if the user adds an item.
Here are the methods in question:
[code]....
View 1 Replies
Apr 22, 2010
I have a question, much liket this unanswered one. I'm trying to work with the entity framework, and having a tough time getting my foreign tables to update. I have something basically like this in the DB:
Incident (table):
-ID
-other fields
Responses (table):
-FK:Incident.ID
-other fields
And and entities that match:
Incident (entity)
-ID
-Other fields
-Responses (EntityCollection of Responses via navigation property)
Each Incident can have 0 or more responses.
In my Webpage, I have a form to allow the user to enter all the details of an Incident, including a list of responses. I can add everything to the database when a new Incident is created, however I'm having difficulty with editing the Incident.
When the page loads for edit, I populate the form and then store the responses in the viewstate. When the user changes the list of responses (adds one, deletes one or edits one). I store this back into the viewstate. Then when the user clicks the save button, I'd like to save the changes to the Incident and the Responses back to the DB. I cannot figure out how to get the responses from the detached viewstate into the Incident object so that they can be updated together.
Currently when the user clicks save, I'm getting the Incident to edit from the db, making changes to the Incident's fields and then saving it back to the DB. However I can't figure out how to have the detached list of responses from the viewstate attach to the Incident. I have tried the following without success:
Clearning the Incident.Responses collection and adding the ones from the viewstate back in:
Incident.Responses.Clear()
for each objResponse in Viewstate("Responses")
Incident.Responses.add(objResponse)
next
Creating an EntityCollection from my list and then assiging that to the Incident.Responses
Incident.Responses = EntityCollectionFromViewstateList
Iterating through the responses in Incident.Response and assigning the corresponding object from viewstate:
for each ObjResponse in Incident.Responses
objResponse = objCorrespondingModifedResonseFromViewState
Next
These all fail, I'd like to be able to merge the changes into the Inicdent object so that when the BLL calls SaveChanges on the changes to both the Incident and Responses will happen at the same time.
View 1 Replies
Nov 15, 2010
I have some (probably very basic) questions about developing custom controls. I am wanting to derive a set of button controls, and the first one I have started on is a "DeleteButton", that has a additional property (DeleteConfirmationText) that is built into the OnClientClick attribute. To get that added, I overrode the Render method as follows:
[Code]....
This all works well. Now, I will add some logic to make sure that there is some text in the DeleteConfirmationText property, but that isn't the intent of my question.
What I am also wanting to do is to override some of the default property values, so I added that to the default constructor:
[Code]....
Now, in the designer in VS2008, and I look at the properties for the control, there isn't a default value shown in the "Properties" section, and the Causesvalidation still shows the underlying classes default value of "True". As well, in design mode, where the GridView control that containse my DeleteButton control would be displayed, there is an error box "There was an error rendering the control. 'Are you certain you want to delete this attorney?' cound not be set on property 'DeleteConfirmationText'. Here's the markup where I am defining the deletebutton control:
[Code]....
What am I doing wrong?
View 5 Replies
Oct 28, 2010
I have Create and Edit forms for Categories. Columns are Id, CategoryName, Order, CreatedOn. On Create form I save the values for all but on Edit form I need to change only CategoryName. Below is the code. Problem is that on Edit form only CategoryName field exists which on submit button is passed to Edit Action. Whenever I update Order and CreatedOn becomes null because the values are not returned from form. Someone tell me any good approach how to Updated selected values in EF. Below is code.
Making multiple Get calls. Form is saving fine but I don't like the approach. Need clean approach. Anyone got better solution to thiis?
[Code]....
View 5 Replies
Jun 16, 2010
I know you can add defaultValues using the web.config like this:
<profile>
<properties>
<add name="AreCool" type="System.Boolean" defaultValue="False" />
</properties>
</profile>
but I have the Profile inherited from a class:
<profile inherits="CustomProfile" defaultProvider="CustomProfileProvider" enabled="true">
<providers>
<clear />
<add name="CustomProfileProvider" type="CustomProfileProvider" />
</providers>
</profile>
Heres the class:
Public Class CustomProfile
Inherits ProfileBase
Public Property AreCool() As Boolean
Get
Return Me.GetPropertyValue("AreCool")
End Get
Set(ByVal value As Boolean)
Me.SetPropertyValue("AreCool", value)
End Set
End Property
End Class
I don't know how to set the default value of the property. Its causing errors because without a default value, it uses an empty string, which cannot be converted to a Boolean. I tried adding <DefaultSettingValue("False")> _ but that didn't seem to make a difference.
I'm also using a custom ProfileProvider (CustomProfileProvider).
View 2 Replies
Dec 30, 2010
I am working on my first project with the Entity Framework and am having some difficulty displaying advanced information with the EntityDataSource and a ListView.
For example, given the two entities:
Item
Name
Price
Order
Number
Items <---- Navigation Property to Items contained in the Order
I want to display a list of all orders with a column with the total number of items in the order and a column with the sum of the prices of all items in the order.
I am using an EntityDataSource configured as follows:
<asp:EntityDataSource ID="eds" runat="server" ConnectionString="name=NDSEntities"
DefaultContainerName="NDSEntities" EnableFlattening="False" Include="Items"
EntitySetName="Orders"></asp:EntityDataSource>
In the ItemTemplate of the ListView, I can write the order number as follows:
<%# Eval("Number") %>
I had trouble figuring out how to display a count of items in the order. I tried using Items.Count() function in select statement in the EntityDataSource but that didn't work. Eventually I figured out I could do the following in my ItemTemplate:
<%# Eval("Items").Count() %>
Now I am stuck trying to get the sum of the items. I am stuck here. I have tried using
<%# Eval("Items").Sum(Function(i) i.Price)%>
but I get the following error:
Public member 'Sum' on type 'EntityCollection(Of Item)' not found.
This confuses me because I know that Sum is a method of EntityCollection(Of ).
My two questions are as follows:
Am I getting the item count correctly?
How should I go about getting the sum of the prices of the items?
View 1 Replies
Jul 21, 2010
Im tring to implement some generic logging in the entityframework 4.0 using the SavingChanges event in the entity context.
I want to record details about any create/ update and deleted records including the id of the record being changed (which is always an int identity field). During the update and delete processes I can get the id for the record using
Dim AddedItems = Statemanager.GetObjectStateEntries(EntityState.Added)
For Each entry As ObjectStateEntry In DirectCast(sender, ObjectContext).ObjectStateManager.GetObjectStateEntries(EntityState.Added)
NewLogItem.RecordId = CInt(entry.EntityKey.EntityKeyValues(0).Value.ToString())
Next
But I obviously cannot get the id of the about to be inserted record during an insert becuase it hasn't been written to the database yet, is there a simple way around this?
View 3 Replies
Apr 21, 2010
When I am using one of the default validation attributes, like [Requeried], and try to submit the form that is in an invalid state some 'magical' happens and the submit is canceled. I can even click 100x that not a single server request is made.On the other hand, I can't accomplish this behavior when I am using a custom validation attribute. Although my form was in an invalid state, a request is sent to the server anyway.I took a look at the "MicrosoftAjax.js" and "MicrosoftMvcValidation.js" but I am totally noob when it comes to Javascript.How can I accomplish the same behavior for both custom and default validations
View 16 Replies
Feb 10, 2011
I can create a custom control with a default value:
private bool exclue = false;
public bool Exclude { get { return exclue; } set { exclue = value; } }
I can Create the same thing with a nullable property:
private EntityStatuses? status = EntityStatuses.Active;
public EntityStatuses? Status { get { return status; } set { status = value; } }
But how can i then set the property to null in markup when using the custom control?
<MyControls:Control ID="Con" runat="server" Status="?" >
View 3 Replies
Jul 15, 2010
How does one create new sites in your own custom directory? Can it be added as a feature?
View 2 Replies
Jun 14, 2010
With ASP.Net 4, is there any way that we can bind web-form controls to entity framework objects?
<asp:TextBox ID="UserName" runat="server" BoundTo="UserName" BindingSource="..."></asp:TextBox>
so just like in MVC I can
form.UpdateModel(userObj),
form.DisplayModel(userObj)
View 1 Replies
Jun 14, 2010
with asp.net 4, is there any way that we can automatically bind web controls (textbox, listbox, check, etc), to EF4 Objects?
View 2 Replies
Jan 27, 2011
SaveChanges can generate an UpdateException when an object added to the ObjectContext cannot be successfully created in the data source. This can happen if a row with the foreign key specified by the relationship already exists. When this occurs, you cannot use Refresh to update the added object in the object context. Instead, reload the object with a value of OverwriteChanges for MergeOption.
In a table, a foreign key column can have a single value multiple times. e.g. DepartmentID foreign key in Users Table: More than one User can have same DepartmentID foreign key.
So how can this cause an UpdateException ?
View 1 Replies
Jul 6, 2010
I got a problem when getting some data out of my EntityFramework using Linq
Heres my code
[Code]....
Heres the ClientViewModel :
[Code]....
As you can se in the ClientViewModel the Users property is a List
But when trying to compile I get a error saying
Cannot implicitly convert type 'AdminMVC.Models.Clients_Username' to 'System.Collections.Generic.List<AdminMVC.Models.Clients_Username>'
View 2 Replies
Oct 2, 2010
I'm working on a project which is using EntityFramework 4 and I am using the entity objects as my business objects. I ran into an issue recently where I had a context declared in a using statement in a user control. The method the statement was in returned an entity object which got used in another control. So I had to detach the entity then attach it to the new context in the other control. I would like to avoid this if possible. What I'm thinking is I would like to declare a context in the master page and then pass that to any page/usercontrol that needs it so they are all using the same context and I don't have to write all these using statements.
My questions are these:
1) is it a bad practice to declare a context on Pre_Init/Page_Load and then dispose of it on Page_Unload?
2) if it is what is the best practice for handling them?
3) if I do go the route of declaring the context in the master page what is the best way to pass that to the pages/usercontrols?
View 1 Replies
Feb 22, 2011
I have not found any way to intercept or override calls to createquery in my datacontext. What I am trying to do is to allow for global filters, i.e. if a user has access to only a subset of entities I would like to filter away these on the lowest level possible. Is there a way to do this? I have tried several apporaches but no one worked out. Perhaps I lack patience or is just plain stupid, but I think it should be possible! So if anyone has any pointers to where
View 2 Replies
Feb 11, 2010
I am having some issues with my base class inheritance. I am currently employing Table per Type Inheritance for the following tables:
Database:
Members Table
- Member ID (PK)
- First Name
- Last Name
- Email
- ...
Students Table
- Member ID (FK)
- Credits
- Notes
- ...
Instructors Table
- Member ID (FK)
- Biography
- Office Hours
- ...
My Entity Data Model defines "Member" as the base class for both Students and Instructors, since members can be both students as well as instructors simultaneously. The problem, however, occurs when I attempt to get a list of Members objects. Because the database contains members who are indeed students AND instructors, the following exception is thrown:
All objects in the EntitySet 'CountyCollegeEntities.BaseMembers' must have unique primary keys. However, an instance of type 'CountyCollege.NET.Administrator' and an instance of type 'CountyCollege.NET.Student' both have the same primary key value, 'EntitySet=BaseMembers;ID=10016'.
I am beginning to think that I made a mistake by building these classes to inherit from Member although it has been ideal up until this point. But before I start ripping up all my existing code to remove this inheritance, I thought I would see if anyone has any tricks that would make this work. Any advice as to either how I can get around this error or a more appropriate way to structure my classes would be very much appreciated.
View 2 Replies
Apr 24, 2010
I am working with RSA Algorithm recently.
I want to use RSACryptoProvider for this purpose.
But i want to use my custom Key instead of default key
for example my public Key =(187, 7)
and my private key=(187,23)
how can i pass my public and private key at RSACryptoProvider
View 2 Replies
Apr 23, 2010
I am trying to use a second (custom) table to extend my users profile info. This table is in the same database as the 'aspnet_Users' table but has a different name. I create a FK relationship between the 'aspnet_Users' table and my custom table. Here is my web.config code:
<profile defaultProvider="AspNetSqlMembershipProvider">
<providers>
<clear />
<add name="AspNetSqlMembershipProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="ConString_SQLConnectionString"
applicationName="/" />
<add name="MyCustomProfile"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="ConString_SQLConnectionString"
applicationName="/"
table="MyProfileTable_Employees" />
</providers>
<properties>
<group name ="MyProfileInfo">
<add name="FirstName" type="string" defaultValue="[null]" customProviderData="FirstName;nvarchar" provider="MyCustomProfile" />
<add name="LastName" type="string" defaultValue="[null]" customProviderData="LastName;nvarchar" provider="MyCustomProfile" />
<add name="EmployeeNumber" type="int" defaultValue="[null]" customProviderData="EmployeeNumber;int" provider="MyCustomProfile" />
</group>
</properties>
</profile>
I have the table "MyProfileTable_Employees" poplulated with data the 'userid' matches to the aspnet_Users table. In my web application (vb), when I type in Profile.MyProfileInfo, there are no custom fields. Actually, when I type profile., there are no profile related entries. What am I missing here? Am I miss-interpting what a custom profile provider is?
View 2 Replies
May 2, 2010
Cannot seem to find a good fit for my question so I will ask here.
Does Asp.Net 4.0 solve the problems with using Views with EntityFramework is not able to recognize primary keys.
View 2 Replies
Jan 10, 2011
I have created a user control that has a gridview. During binding I set some common properties like height and width. To do so, I have created public properties. I have created the public property so that user can also set the height and width themselves. But if user didn't specify then I use my defaults.
My problem is that user settings are always overridden by my default settings. I want to set the default values as the control is rendered on the page and then if user apply his settings then it shold override. Which event/method is best on user control to jandle such scenario? Where should I write the code to call my default settings so that it is first thing that happens? What is the user control life cycle?
View 2 Replies
Jul 26, 2010
i have the following property which takes an IP address as its value and defined in my custom config section as follows and To validate the IP address i am using a Reg expression.
[ConfigurationProperty("SMTPServer", IsRequired = true, DefaultValue = "0.0.0.0")
View 1 Replies