C# - Adding DataAnnotations To Auto Generated DBML Class?
Feb 17, 2010
i'm worried about doing this since my changes will be overwritten when the dbml file is auto generated again (as they often are).
i'm thinking of doing a partial class and writing out the same properties to annotate them, but worried that it will complain about duplicates, and the reason i can't even experiment brings me to the second part of my questions...
... that, the expandable arrow on my dbml file listing is missing, right clicking and selecting "View Code" just displays an empty partial class as below...
Partial Class FPDataContext
End Class
I'm using VS2010 RC and am just developing an MVC 2.0 app where i want to be able to use the UI Annotations such as [UIHint("RelativeDateTime")]
edit:
here is my VB version edit as an example...
Imports System.ComponentModel.DataAnnotations
<MetadataType(GetType(CommentMetaData))> _
Partial Public Class Comment
End Class
Public Class CommentMetaData
<UIHint("PostedSince")> _
Public Property DateAdded() As DateTime
End Class
Split off from http://forums.asp.net/t/1654957.aspx/1?Validation+in+MVC+using+JQUERY+OR+JAVASCRIPT. Start new questions in a new thread.
Hey thanks a lot!!!
The following link worked fine http://geekswithblogs.net/stun/archive/2010/02/27/asp.net-mvc-client-side-validation-summary-with-jquery-validation-plugin.aspx
However, I am Having one other problem. There are four solutions in my project. All my controllers and Views are declared in the Presentation solution. There are auto-generated class files in the solution named DomainModel. So, my views inherits these auto-generated files from the DomainModel solution. The problem is that I can't modify these auto-generated files by using Data Annotations in there. Hence, cannot accomplish my validation. I tried by creating partial classes but no result. By creating a class file in my Presentation solution and then binding it with the view the validation works fine. But my views are binded with the class files (auto-generated) from the DomainModel.
Can you/anyone help me work it out so, that validation works with those classes without modifying it.
Is it possible to add a CSS class from DataAnnotations (metadata) when I use Html.EditorForModel() - without a custom template...
Something like this [DataType(CssClass = "DateTime")]
public class TestInput { [Required(ErrorMessage = "Name is required.")] public string Name { get; set; } [Required, StringLength(500)] [DataType(DataType.MultilineText)] public string Description { get; set; } [Required] [DataType(CssClass = "DateTime")] public DateTime Date { get; set; } [HiddenInput(DisplayValue = false)] public int Id { get; set; } }
When you add a Web Reference in an ASP.NET project in Visual Studio the web application's root namespace is always added.So, if I add a web reference called MyWebService and the default namespace of the application is MyApplication the namespace of the generated proxy class will be: MyApplication.MyWebService.
However, I want to be able to specify which namespace to use for the generated class (to skip the default namespace and have the namespace be called simply MyWebService).Is using wsdl.exe through the command line the only way of accomplishing this? I don't want to manually edit the generated class (since it can get re-generated).
I have a hyper link control and I set the NavigateURL and the ImageURL property at runtime. I also need to set the class of the image tag that it generates but I cannot figure out how I can do that. The solution mentioned here [URL] does not work because the image url is hard coded.
I have a "database explorer" page that is desgined to be pointed to an unknown database and allow users to browse the data, so it basically uses the SQL system tables to develop its queries and pull in data to tables using auto-generate columns.The problem that I have is that I would like certain types of columns to have certain formats and I'm wondering the best way to go about it. I could format the column in code in the RowDataBound event I assume, but I'm wondering if there some better standard way to do this? Is there a setting of any kind that I can use? For example I want all of the datetime fields to be formated for short date, like {0:d}, I want decimal fields to have 4 decimal places, etc.
I know that Visual Studio auto-generates a lot of code when you develop a web application. How do I know which code is auto-generated? I do a lot of code editing and tweaking by hand (Im not a WYSIWYG guy), and I want to make sure I'm not editing something thats going to get over-written later by the auto-generator!
I'm trying to call a Soap Web Service, and I need to pass an Address Object to the Server. I can pass an existing address.Id to update an existing address, or if I leave the address.Id empty, it should be saved as a new Address. The Problem is that the Id is of long type, and it allways has a value of 0.And this makes problems for the server, because even if the Id=0, the Server Side function will take the Address as Existing one, and it will start to search on the Database for an Address with Id=0. Of course there is no such address, and it throws an error. When I try to call the Web Service with WebService Studio or SoapUI, and I delete the id manually, then It works as expected, as soon as I put <address id="0"> then it returns me an error - Address with Id=0 not found.So the question is, how to change the webservice definitions, or the proxy classes so that it does not generates this id="0" at all?P.S. I cannot change the Server Side method, it would have been the easiest solution, but unfortunatelly is not possible.
I used the auto generated models to use my existing SQL server in a new website.in some forms I use rich text editor (CKEditor) so I added [ValidateInput(false)] to those post back actions. but that is a bad solution 'caus I have lost of other from items which needs validation. I came across a potential solution to that using [AllowHtml] which I need to add to the model properties. I tried that:
[Code]....
but that is an error "type or namespace couldn't be found.."any ideas about where the [AllowHtml] attribute should be?
In a database table, let's say I have a non-null field named "Description" with a default value of (''). If I drag this table onto the .dbml view in Visual Studio and click on the Description field, the properties will indicate that the Auto Generated Value is set to false, thus ignoring my default value of (''). This is fine, as long as I always explicitly set a value for Description when I perform an insert/update, but I ran into a problem today when I tried to do an insert without specifying a value for Description: Cannot insert NULL value into Description. The default value I set for the field was being ignored. To try and fix this error, I went back into the .dbml and set Auto Generated Value to true, and tried again - no error this time, but the data I tried to insert was ignored, and the default value, (''), was inserted instead. I do not want to explicitly set every field to a default value programmatically when I perform inserts. Is there any other way to resolve this issue other than making the fields nullable?
I'm creating a column through ItemTemplate in my gridview, how can i adjust it to be my last column, unfortunately .net is making this column to be the first in grid view i want it to be the last column. The rest of the columns are automatically created by this code.
Problem for me is that a tag is being generated that apparently just moves the treview a little bit. So I am thinking I should delete it at runtime. How do I do that?
I'm working on a RoleProvider in .NET, using Fluent NHibernate to map tables in an Oracle 9.2 database.
The problem is that the many-to-many table connecting users and roles uses a primary key generated from a sequence, as opposed to a composite key. I can't really change this, because I'm writing it to be implemented in a larger existing system.
Here is my UserMap:
public UserMap() { this.Table("USR");[code].....
Yet, this is giving me the error:
Type 'FluentNHibernate.Cfg.FluentConfigurationException' in assembly 'FluentNHibernate, Version=1.0.0.593, Culture=neutral, PublicKeyToken=8aa435e3cb308880' is not marked as serializable.
Is there a simple fix to allow this HasMayToMany to use my PersistentObjectMap extension? I'm thinking I may have to add a convention for this many-to-many relationship, but I don't know where to start with that, since I've just started using NHibernate and Fluent NHibernate only recently.
EDIT: I think I've found a possible solution here: http://marekblotny.blogspot.com/2009/02/fluent-nhbernate-and-collections.html
I'll try the above method of creating an entity and a class map for the linking table and post my findings.
EDIT 2: I created a linking entity as mentioned in the above blog post and downloaded the newest binaries (1.0.0.623). This helped me discover that the issue was with setting lazy load and trying to add roles to the user object in a completely new session.
I modified the code to move OpenSession to the BeginRequest of an HttpModule as described here. After doing this, I changed my data access code from wrapping the open session in a using statement, which closes the session when it is finished, to getting the current session and wrapping only the transaction in a using statement.
This seems to have resolved the bulk of my issue, but I am now getting an error that says "Could not insert collection" into the USR_ROLE table. And I'm wondering if the above code should work with a UserRoleMap described as:
public UserRoleMap() { this.Table("USR_ROLE"); [code]....
Hibernate's documentation for many-to-many relationship suggests creating an object to maintain a one-to-many/many-to-one, as in an ERD. I'm sure this would be much easier with conventional naming standards, but I have to stick with certain abbreviations and odd (and not always properly-implemented) conventions.
I have written a t4 template that basically replaces the work done by StronglyTypedResourceBuilder to give design time access to string resources as properties of classes, one class per resource file. Why? Well I needed to add some customer code that handles string token substitution and a few other customizations. Anyway, the template is working out really well and I may blog on it soon.
In the mean time though, following a common pattern, I have one .resx file for each view, master page, controller, etc. I would really like my t4 template to add a property to each such entity that gives quick access the custom resource class associated with it. For controllers this is easy. T4MVC is ensuring that they are a all declared partial. All I need to do is create the appropriate partial class in my output that declares a readonly property that returns an instance of the appropriate generated resource class.
The Problem:
I would like to do the same thing, inject generated code, into my views. Were this traditional ASP.Net, each .aspx page would have a .aspx.cs page and possibly an .aspx.designer.cs page that are all partial classes extending in the aspx page's class definition. There is no such thing by default in MVC and for good reason. However, I think for my purposes, if there is a way to do this, it would be the way to go.
I could subclass ViewPage and add a generic type parameter and a property that returns the class of that type but that has certain complications. I think adding auto generated code to each view via partial class (that is what partials are for after all) is the way to go.
I have made a basic attempt. I have created a .aspx.cs file for a view and placed a code behind attribute in the page declaration but the class generated from the view seems to reside in a different assembly any my "partial class" ends up as its own class in the same assembly as all my other code.
I have a GridView bound to a DataTable that I construct. Most columns in the table contain the raw HTML for a hypelinklink, and I would like that HTML to render as a link in the browser, but the GridView is automatically encoding the HTML, so it renders as markup.
How can I avoid this without explicitly adding HyperLink, or any other, columns?
I am currently working on a module in which I am creating an auto generated column gridview, and I have set the Auto generate edit button field to true. What happens now when I click the edit button The primary key field is turned in to edit mode which I want to restrict from being updated.
To restrict the same I have hard coded a template field which holds that column, But as I have set the AutoGenerateColumns Property to true the gridview automatically creates a duplicate field for holding the primary key column. For which I want to delete that particular column.
My Designer Code is:-
[Code]....
in page load I am binding the grid view.
Even I have tried to hide that column doesn't make any difference for me.
I have a gridview which has autogenerate Columns Property "TRUE", and i'm dynamically binding this gridview with columns with sql database dataset. there is no data in sql but i am successful in showing blank gridview on form, now i want textboxes in gridview attached with each column, so i wrote code in RowDataBound which generates textbox automatically and assigns ID to each textbox, nw i want to insert that data from textbox to database but i'm not getting text which is entered in those textboxes, as i am accessing that textboxes using findcontrol and passing the id like gridview1_ctl03_text0. but i''m not getting any value from textbox?
In short i want to access auto generated textbox (with out any id predefined ) values from footer of gridview