I am confused on your question. I am assuming you are making your dbmls automatically by dragging/dropping, so all of your classes should already be made. I generally only make a new Model in MVC if the provided classes do not provide what I need in them.
You can use strongly typed bindings in your views to your DBML types while still seperating the DAL. I generally put my DAL in a project called ProjectName.DomainModel and the web UI in ProjectName.WebUI and reference the ProjectName.DomainModel*. Now when I am making a new View, I can stronly-type it to the external library that has my dbml in it:
Inherits="System.Web.Mvc.ViewPage<ProjectName.DomainModel.SomeObject>"
Also, for things such as validation with annotation, I keep that seperate in my DAL, but I use partial classes (these are often called buddy classes that are separated so if I refresh my dbml, the validation stays. For example, if I have the SomeObject above that is in my dbml, I can add validation requiring a Name like this:
using System.ComponentModel.DataAnnotations;
namespace ProjectName.DomainModel
{
[MetadataType(typeof(SomeObjectValidation))]
public partial class SomeObject { }
public class SomeObject
{
[Required(ErrorMessage = "Name is Required")]
public string Name { get; set; }
}
}
Now this validation will be separated from the dbml and always available - just make sure it is in the same namespace.
But if the dbml classes do not meet the needs of what you want in your Model, be sure to make a new Model in the MVC project itself, that it was it is for. When you do this, remember you can simply add in your dbml classes as properties of your new Model, therefore avoiding rewriting code you already have.